꾸준히 공부하는 개발자

[Typescript] 3일차 - interface와 type 본문

Typescript

[Typescript] 3일차 - interface와 type

kauboy 2020. 1. 23. 15:31

Interface

interface PartialPointX { x: number; }
interface Point extends PartialPointX { y: number; } //상속

Type

type PartialPointX = { x: number; };
type Point = PartialPointX & { y: number; }; //상속

섞어서 상속도 가능하다.

type PartialPointX = { x: number; };
interface Point extends PartialPointX { y: number; }

interface PartialPointX { x: number; }
type Point = PartialPointX & { y: number; };

Implements

interface Point {
  x: number;
  y: number;
}

class SomePoint implements Point {
  x: 1;
  y: 2;
}

type Point2 = {
  x: number;
  y: number;
};

class SomePoint2 implements Point2 {
  x: 1;
  y: 2;
}

type PartialPoint = { x: number; } | { y: number; };

// FIXME: can not implement a union type
class SomePartialPoint implements PartialPoint {
  x: 1;
  y: 2;
}

implements를 한 타입에 종속된 속성들을 무조건 선언해줘야한다?

 

interface vs type

옛 버전에서는 interface와 type의 기능이 많이 차이가났지만, 현재에 와서는 거의 차이가없다.
내가 본것중에는

type은 이런식으로 선언해야해서 중복선언이 안되지만 Interface는 중복선언이 되는것정도? 밖에 느끼지못했다.

Comments