Type System - 타입 별칭

lbr·2022년 7월 17일

타입 별칭(Type Alias)

어떤 타입에 다른 이름을 붙인 것이라고 생각하면 편합니다.

  • Primitive타입을 다른이름으로 부르거나, Union타입을 다른이름으로 부르거나, Tuple이나 Function 에서 길어진 타입을 짧게 이름을 붙일 때 사용합니다.

Aliasing Primitive

type MyStringType = string; // string타입을 MyStringType로 이름을 붙였습니다.

const str = 'world';

let myStr: MyStringType = 'hello';
// TypeScript는 구조가 같으면 같은 타입입니다.
myStr = str; // 서로 대입이 가능합니다.
str = myStr;

Aliasing Union Type

let person: string | number = 0;
person = 'Mark';

type StringOrNumber = string | number;

let another: StringOrNumber = 0;
another = 'Anna';
  • 긴 타입을 짧게 줄여주는 역할을 합니다.

Aliasing Tuple

let person: [string, number] = ['Mark', 35];

type PersonTuple = [string, number];

let another: PersonTuple = ['Anna', 24];
  • 튜플 타입에 별칭을 줘서 여러군데서 사용할 수 있게 한다.

Aliasing Function

type EatType = (food: string) => void;
  • 매개변수로 함수를 넣는 경우에도 이를 Aliasing을 통해서 줄일 수 있습니다.
  • EatType(food: string) => void 을 의미합니다.

Type Alias와 interface를 구분해서 사용하는 법

어떤 타입이 목적이나 존재 가치가 명확하면 interface를 사용하는 편이고,
다른 대상을 가리킬 뿐이거나 별명으로서만 존재힐 때에는 Type Alias를 사용하는 편입니다.

기술적으로도 Type Aliasinterface가 차이가 없는 것은 아닙니다.

profile
ro

0개의 댓글