TypeScript: 제네릭(Generics)
1. 제네릭이란?
제네릭 은 재사용성이 높은 컴포넌트를 만들 때 유용합니다. 단일 타입이 아닌 다양한 타입에서 작동할 수 있는 함수나 클래스를 만들 수 있게 해줍니다.
2. 제네릭 함수
타입 매개변수 <T>를 사용하여 호출 시점에 타입을 결정합니다.
function identity<T>(arg: T): T {
return arg;
}
let output1 = identity<string>("myString");
let output2 = identity<number>(100);
3. 제네릭 인터페이스
인터페이스에도 제네릭을 적용하여 유연하게 사용할 수 있습니다.
interface Box<T> {
content: T;
}
const stringBox: Box<string> = { content: "Apple" };
const numberBox: Box<number> = { content: 123 };
4. 제네릭 제약 조건 (Constraints)
extends 키워드를 사용하여 특정 조건을 만족하는 타입만 허용할 수 있습니다.
interface Lengthwise {
length: number;
}
function loggingIdentity<T extends Lengthwise>(arg: T): T {
console.log(arg.length); // length 속성이 있음을 보장
return arg;
}
loggingIdentity({ length: 10, value: 3 });