타입 별칭(Type Alias)는 type 키워드를 사용하여 타입에 이름을 설정하는 방법이다. type뒤에 별칭을 입력하고 =연산자 뒤에 타입을 정의한다.
type MyName = string;
type MyAge = number;
let name: MyName = 'Tom';
let age: MyAge = 20;
위와 같이 간단한 타입 뿐만 아니라 인터페이스 레벨의 복잡한 타입에도 별칭을 부여할 수 있다.
type Developer = {
name: string;
skill: string;
}
let kim: Developer = {
name: 'kim',
skill: 'TypeScript'
}
타입 별칭과 인터페이스는 새로운 타입을 정의하고 사용할 수 있다는 점에서 인터페이스와 유사하다.
하지만 인터페이스는 객체에서만 사용이 가능하고 타입 별칭은 원시값, 유니온 타입, 튜플 등도 타입으로 지정할 수 있다.
그리고 인터페이스는 extends 또는 implements 될 수 있지만 타입 별칭은 그렇지 않다. 즉, 상속을 통해 확장이 필요하다면 타입 별칭보다는 인터페이스가 좋다. 만약 인터페이스로 표현할 수 없거나 유니온 또는 튜플을 사용해야 한다면 타입 별칭을 사용하는 것이 좋다.