5.1 조건부 타입

1. extends와 제네릭을 활용한 조건부 타입

extends

목적

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

// 사용 예시
printLength('Hello'); // 출력: 5
printLength([1, 2, 3]); // 출력: 3
// printLength(123); // 오류: number 타입에는 'length' 속성이 없습니다.

사용 방법

활용 예시

  1. 제네릭과 extends를 함께 사용해 제네릭으로 받는 타입 제한. 따라서 개발자는 잘못된 값을 넘길수 없기 때문에 휴먼 에러 방지 가능
  2. extends를 활용해 조건부 타입을 설정했다. 조건부 타입을 사용해서 반환값을 사용자가 원하는 값으로 구체화할 수 있다. 이에 따라 불필요한 타입 가드, 타입 단언등을 방지할 수 있다.

infer

특징

사용 방법

목적(책에 없는 내용)