👶 TypeScript

조건부 타입

개발자 린다씨 2023. 1. 21. 10:00
반응형

조건부 타입

조건부 타입은 TypeScript가 제공하는 기능 중에서도 가장 독특하다고 할 수 있습니다.

 

조건부 타입의 의미를 말로 풀어보자면 "U와 V 타입에 의존하는 T 타입을 선언하라. U <: V면 T를 A에 할당하고, 그렇지 않으면 T를 B에 할당하라"라고 할 수 있습니다.

 

코드로는 다음과 같습니다.

type IsString<T> = T extends string // ①
? true // ②
: false // ③

type A = IsString<string> // type A = true
type B = IsString<number> // type B = false

한 줄씩 자세히 살펴봅시다.

  1. 제네릭 타입 T를 인수로 갖는 새로운 조건부 타입 IsString을 선언했습니다. 이 조건부 타입에서 '조건'은 T extends string 부분이고, "T는 string의 서브 타입인가?"라는 의미입니다.
  2. T가 string의 서브 타입이면 true 타입으로 해석합니다.
  3. 그렇지 않으면 false 타입으로 해석합니다.

평범한 값 수준의 삼항 연산자처럼 보이는 문법이지만 실제로는 타입 수준의 연산입니다.

 

일반적인 삼항 연산자처럼 중첩할 수도 있습니다.

 

조건부 타입은 타입 별칭 외에도 타입을 사용할 수 있는 거의 모든 곳에 사용할 수 있습니다.

반응형