ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Typescript - infer
    Front-end/Typesrcipt 2023. 4. 24. 21:23
    728x90
    반응형

    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
Designed by Tistory.