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의 모든 요소를 다 사용해야 컴파일 오류가 나지 않는다.
'TypeScript' 카테고리의 다른 글
Type Script_11 Compiler (컴파일) (0) | 2021.04.20 |
---|---|
Type Script_10 Utility Type & Type Manipulation (유틸리티 타입 과 유형 조작) (0) | 2021.04.20 |
Type Script_08 Generics (제네릭) (0) | 2021.04.16 |
Type Script_07 OOP(객체지향프로그램) (0) | 2021.04.16 |
Type Script_06 타입 추론 & 단언 (Inference & Assertion) (0) | 2021.04.16 |
댓글