-
Typescript - inferFront-end/Typesrcipt 2023. 4. 24. 21:23728x90반응형
Typescript infer
typescript 에서 타입에 대한 조건식을 넣어 줄때 extends와 삼항 연산자를 사용하여 타입에 들어오느 파라미터에 따라 타입을 바꿀수 있다.
// extends 를 사용하여 타입을 T라는 타입이 string을 가지고 있는지 확인한다. type Age<T> = T extends string ? string : unknown; // 삼항연산자로 조건을 만들어 타입을 선언한다. // a는 string 타입 let a: Age<string> // a2는 unknown 타입 let a2: Age<string>
반응형Infer
infer 이란 제네릭 파라미터에 들어간 타입을 뽑아내 다른 변수에 넣어두어 타입을 선언할때 사용하기도한다.
// T 에서 타입을 받아와서 R 이라는 변수에 저장한다. type Person<T> = T extends infer R ? R : unknown; // a는 string타입이 된다. let a: Person<string>;
infer 를 사용하여 배열의 내부 타입만 사용할 수 있다.
// infer 와 같은 위치에 있는 string 타입을 R 변수에 선언한다. type ArrType<T> = T extends (infer R)[] ? R : unknown; type arr = ArrType<string[]>; // string 타입이다. type arr2 = ArrType<string>; // any 타입이다.
infer를 사용하여 함수의 return 타입을 추출할 수 있다.
// 함수의 return 타입을 추출한다. type ReturnType<T> = T extends (() => infer R) ? R : unknown; // void 타입을 선언한다. type rType = ReturnType<() => void>;
728x90반응형'Front-end > Typesrcipt' 카테고리의 다른 글
Typescript - Type Mapping (0) 2023.04.24 Typescript - index signatures (0) 2023.04.19 Typescript - implements (2) 2023.04.19 Typescript - d.ts (0) 2023.04.18 Typescript - declare (0) 2023.04.18