본문 바로가기
  • Junior developer :)
TypeScript

Type Script_09 Type alias와 Interface 차이👀

by ram_Hi 2021. 4. 16.


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

type PositionType {
  x: number;
  y: number;
}

1. 개념

 - Type alias : 데이터의 타입을 사용자정의 / const과 같은 원리로 재정의 불가능 / 데이터 담는 목적으로 사용

 - Interface : 일종의 계약서 개념 / let과 같은 원리로 재정의 가능 / 구현할 목적으로 사용


2. 유사점

 - Object(객체)로 정의 내릴 수 있다.

const obj1: PositionInterface = {
  x: 1,
  y: 1,
}
const obj2: PositionType = {
  x: 2,
  y: 2,
}

 - Class(클래스)에서 구현 가능 -> implements 를 사용한다.

class Man1 implements PositionType {
  x: number;
  y: number;
}
class Man2 implements PositionInterface {
  x: number;
  y: number;
}

 - Extands(확장) 가능 

interface ZPositionInterface extends PositionInterface {
  z: number;
}

type ZPositionType = PositionType & { z: number };

3. 차이점

 - Interface는 재정의가 가능하여 병합이 가능하다.

  단, 병합한 Interface의 모든 요소를 다 사용해야 컴파일 오류가 나지 않는다.

댓글