개발 알다가도 모르겠네요

타입스크립트의 Type Alias 본문

웹/Typescript

타입스크립트의 Type Alias

이재빵 2022. 6. 28. 14:39
728x90

타입 앨리어스는 새로운 타입을 정의합니다.

 

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

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

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

// 타입 앨리어스
type Person = {
  name: string,
  age?: number
}

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

 

하지만 타입 앨리어스는 원시값, 유니온 타입, 튜플 등도 타입으로 지정할 수 있습니다.

// 문자열 리터럴로 타입 지정
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 또는 implements 가능 상속을 통해 확장이 필요하다면 인터페이스가 유리
타입 extends 또는 implements 불가능 인터페이스로 표현할 수 없거나 유니온 또는 튜플을 사용해야한다면 타입 앨리어스를 사용

' > Typescript' 카테고리의 다른 글

null/undefined value 처리  (0) 2022.08.23
타입스크립트의 getter/setter  (0) 2022.07.29
타입스크립트의 타입 가드  (0) 2022.06.27
타입스크립트의 타입 추론  (0) 2022.06.19
타입스크립트의 Enum  (0) 2022.06.19