[typescript] 제네릭 제약과 타입 제한
  1. 제네릭 제약
  2. 타입 제한
  3. 결론

제네릭 제약

제네릭을 사용할 때 특정 타입에 대한 제약을 걸고 싶을 때가 있습니다. 이 때 제네릭 제약을 사용합니다. 제네릭 제약은 특정 타입이 가져야 하는 속성이나 행위를 명시하여 보다 유연한 코드를 작성할 수 있도록 도와줍니다.

예를 들어, 다음 코드는 length 속성을 갖는 타입을 제네릭으로 받아와야 합니다.

function logLength<T extends { length: number }>(arg: T): void {
    console.log(arg.length);
}

위 코드에서 <T extends { length: number }> 부분은 Tlength 속성을 가지고 있어야 한다는 제약을 나타냅니다.


타입 제한

keyof 키워드를 사용하여 객체의 특정 속성만을 받아올 수 있는 타입을 지정할 수 있습니다.

예를 들어, 다음 코드는 Person 타입의 객체에서 name 속성만을 받아올 때 사용됩니다.

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

function getName(obj: keyof Person): void {
    console.log(obj.name);
}

위 코드에서 obj: keyof Person 부분은 objPerson 타입의 객체의 속성만을 가지도록 제한합니다.


결론

제네릭 제약과 타입 제한을 사용하면 보다 안정적이고 유연한 코드를 작성할 수 있습니다. 타입 안전성을 높이고 코드의 가독성을 향상시키기 위해 이러한 기능들을 적절히 활용하는 것이 중요합니다.


이 포스트는 TypeScript 공식 문서를 참고하여 작성되었습니다.