[typescript] 타입스크립트에서 제공하는 고급 타입에는 어떤 것들이 있나요?
목차
제네릭
타입스크립트에서 제네릭(Generic)은 타입이 동적인 상황에서 여러 종류의 데이터를 다룰 수 있는 강력한 도구입니다. 함수나 클래스를 선언할 때, 실제 타입을 나중에 지정하여 재사용성을 높일 수 있습니다.
function identity<T>(arg: T): T {
return arg;
}
let output = identity<string>("hello"); // output의 타입은 string
조건부 타입
조건부 타입(Conditional Types)은 입력된 제네릭 타입에 따라 결과 타입이 달라지도록 하는 기능입니다. 조건부 타입은 infer
키워드를 사용하여 타입 매개변수를 추론할 수 있습니다.
type TypeName<T> =
T extends string ? "string" :
T extends number ? "number" :
T extends boolean ? "boolean" :
"object";
type StringOrNumber = TypeName<string | number>; // "string" | "number"
유니언 타입과 인터섹션 타입
유니언 타입(Union Types)은 |
연산자를 사용하여 여러 타입 중 하나일 수 있는 경우를 나타내고, 인터섹션 타입(Intersection Types)은 &
연산자를 사용하여 여러 타입을 모두 포함하는 새로운 타입을 생성할 수 있습니다.
type StringOrNumber = string | number;
type Employee = { name: string } & { jobTitle: string };
let value: StringOrNumber = "text";
let employee: Employee = { name: "John", jobTitle: "Developer" };
타입스크립트의 고급 타입 기능을 활용하면 좀 더 유연하고 안전한 코드를 작성할 수 있습니다.