Type Aliases
- 타입 정의를 변수(Aliases; 별칭)로 담을 수 있음.
type
키워드 사용.
type
을 지정할 때 관습적으로 대문자 사용. (PascalCase)
type
은 재정의가 불가능.
union type
let 동물: string | number | undefined;
type AnimalType = string | number | undefined;
let 동물2: AnimalType;
type NameType = string;
type AgeType = number;
type PersonType = NameType | AgeType;
object type
const 동물: { name: string; age: number } = { name: 'kim', age: 20 };
type AnimalType = { name: string; age: number };
const 동물2: AnimalType = { name: 'park', age: 30 };
수정 막기
- TS는 객체의 참조값 수정을 막을 수 있음.
readonly
키워드 이용.
type GirlfriendType = {
readonly name: string;
};
const 여친: GirlfriendType = {
name: '여친',
};
여친.name = '없음';
- 단, TS 내에서만 에디터 에러가 나고 JS에서는 실행 가능.
intersection type(교차 타입)
- 다수 타입의 교집합을 의미.
- 단순 복사(또는 extends)와는 다름.
&
(and) 연산자 이용.
type PositionXType = { x: number };
type PositionYType = { y: number };
type NewType = PositionXType & PositionYType;