TypeScript에 대한 간단한 정리 - 07. 타입 별칭(Alias)
2024. 12. 20. 15:30ㆍProgramming Language/Node.js
타입 별칭은 타입에 이름을 붙이는 것을 말한다.
이 타입 별칭을 사용해서 기본 타입, 복잡한 객체 타입, 유니온 타입등 과 같은 타입을 재사용할 수 있고, 코드의 가독성과 유지보수를 쉽게 할 수 있다.
타입 별칭은 type이란 키워드를 사용해서 정의하고 인터페이스와 비슷하나 더 유연한 방식으로 타입을 표현하여 사용이 가능하다.
타입별칭의 기본적인 문법은
type 별칭명 = 타입;
과 같이 사용하고 타입에는 기본타입, 객체타입, 유니온타입, 인터섹션 타입등 어떠한 타입도 들어갈 수 있다.
기본타입에 대해서 별칭을 사용하면
type ID = string;
const userId : ID = "testUser";
const keyId : ID = "Key123"
과 같이 사용이 가능하다.
객체 타입에 대해서 별칭을 사용하면
type User {
name : string;
age : number;
}
const user : User {
name : "Bob",
age : 30
}
와 같이 사용한다.
유니온 타입에서 별칭을 사용한다면
type UnionType = "1" | "2" | "3";
const unionNum : UnionType = "1";
와 같이 사용하면 된다.
유니온 타입으로 별칭을 선언한다면 유니온 값에 대해서만 값을 할당할 수 있게 된다.
함수 타입에 별칭을 사용한다면
type FuncTest = (n1 : number, n2 : number) => nubmer;
const funcCaller : FuncTest = (x , y) => x + y;
와 같이 사용한다.
인터섹션 타입에 별칭을 사용한다면
type Name = {
name : string;
}
type age = {
age : number;
}
type Person = Name & Age;
const person : Person = {
name : "James",
age : 20
}
이렇게 사용하는 방식을 보면 타입별칭과 인터페이스를 사용하는 방식이 비슷한걸 볼 수 있는데 서로의 차이점이 있다.
특징타입 | 별칭 (Type Alias) | 인터페이스 (Interface) |
기본 타입 표현 | 가능 (ex. type ID = string;) | 불가능 |
유니온/인터섹션 타입 | 가능 ( ex. `type Status = "active" | "inactive";`) |
확장 | 인터섹션(&)을 사용하여 확장 가능 | extends 키워드를 사용하여 확장 가능 |
병합 | 동일 이름의 타입은 병합되지 않음 | 동일 이름의 인터페이스는 병합 가능 |
그래서 인터페이스의 경우는 객체의 구조를 정의하고 확장하거나 병합이 필요한 경우 사용하고 타입 별칭의 경우는 기본타입, 유니온 타입 등등의 복잡한 타입의 조합들을 표현해야 하는 경우 사용하게 된다.
'Programming Language > Node.js' 카테고리의 다른 글
TypeScript에 대한 간단한 정리 - 09. 함수 - 오버로딩(Overloading) (0) | 2024.12.20 |
---|---|
TypeScript에 대한 간단한 정리 - 08. 함수 - 명시적 this 타입 (1) | 2024.12.20 |
TypeScript에 대한 간단한 정리 - 06. 인터페이스 - 인덱싱 가능 타입 , 확장(상속) (0) | 2024.12.19 |
TypeScript에 대한 간단한 정리 - 05. 인터페이스 - 기본 , 함수 타입 (0) | 2024.12.18 |
TypeScript에 대한 간단한 정리 - 04. 타입 및 할당 단언(Assertions) (0) | 2024.12.16 |