<aside> 💡 목차

</aside>

1. 제네릭의 제약 조건

1-1) 제약 조건(Constraints)

1-2) 제네릭 제약조건의 예시

interface Lengthwise {
  // length 속성을 가지는 인터페이스
  length: number;
}
function constraints<T extends Lengthwise>(arg: T): T {
  // T는 객체 타입(length 속성을 반드시 가지는)
  console.log(arg.length);
  // arg 매개변수는 반드시 .length 속성이 포함되어 있음
  return arg;
}

Constraints.png

let variable = constraints({
  length: 10,
  // length 속성을 가진 객체
  // +) 추가로 기타 속성 명시가 가능 >> 확장!
  value: 3,
  addedOption: '안녕하세요',
});

console.log(variable); // { length: 10, value: 3, addedOption: '안녕하세요' }

1-3) 최소한의 속성을 가진 객체 찾기

keyof 연산자