[TS] 타입 앨리어스

heyhey·2023년 7월 13일
0

TypeScript 🦫

목록 보기
4/5
post-thumbnail

type

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

interface Person {
  name: string;
  age?: number;
}
type Person = {
  name: string;
  age?: number;
};

인터페이스와 다를게 없어 보이는데??

그렇다. 기능은 완전 동일하다.
하지만 타입 앨리어스는 원시값, 유니온 타입, 튜플 등도 타입으로 지정할 수 있다.

타입 지정

type Str = string;
const str1: Str = "Good";
const str2: Str = 5; // 에러

이런식으로 str만 오게끔 하는 것도 가능하고 (하지만 의미 없죠?)

type Lee = "Lee" | "LEE" | "lee" | "LeE";
const lee1: Lee = "LEE";
const lee2: Lee = "lee";
const lee3: Lee = "LEEE"; // 에러

원하는 문자열만 적게도 사용 가능하다. 이 기능은 유용해 보인다.

함수도 사용 가능하다.

type StrFunc = () => string;
const stringFunction: StrFunc = () => {
  return "스트링 출력";
  // return 5 에러
};

타입 내용으로 인터페이스를 사용해도 유용하다

type Shape = Square | Rectangle | Circle;

튜플로 타입 지정

type Tuple = [string, number];
const t: Tuple = ["1", 5];

인터페이스는 extends/implements 가 될 수 있지만 타입은 그렇지 못하다.
이런 점에서는 인터페이스가 유리하고, 유니온 또는 튜플을 사용할 때는 type이 유리할 수도 있다.

profile
주경야독

0개의 댓글