타입 앨리어스

ujin·2022년 11월 20일
0

TypeScript

목록 보기
1/5

타입 앨리어스는 새로운 타입을 정의한다. 타입으로 사용할 수 있다는 점에서 타입 앨리어스는 인터페이스와 유사하다.

인터페이스는 아래와 같이 사용한다.

interface Person {
    name: string,
    age?: number
}

// 빈 객체를 Person 타입으로 지정
const person = {} as Person;
person.name =  'Lee';
person.age = 21;
person.address = 'seoul' // Eerror

타입 앨리어스도 인터페이스와 마찬가지로 타입으로 사용할 수 있다.

// 문자열 리터럴로 타입 지정
type Str = 'Lee';

****// 유니온 타입으로 지정
type Union = string | null;

// 문자열 유니온 타입으로 지정
type Name = 'Lee' | 'Kim';

// 숫자 리터럴 유니온 타입으로 지정
type Num = 1 | 2 | 3 | 4 | 5;

// 객체 리터럴 유니온 타입으로 타입 지정
type Obj = {a: 1} | {b: 2};

// 함수 유니온 타입으로 타입 지정
type Func = (() => string) | (() => void);

// 인터페이스 유니온 타입으로 타입 지정
type Shape = Square | Rectangle | Circle;

// 튜플로 타입 지정
type Tuple = [string, boolean];
const t: Tuple = ['', '']; // Error

인터페이스는 extends 또는 implenments될 수도 있지만 타입 앨리어스는 extends 또는 implements될 수 없다. 즉 상속을 통해 확장이 필요하다면 타입 앨리어스보다 인터페이스가 유리하다.

profile
개발공부일기

0개의 댓글