ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Typescript - generics
    Front-end/Typesrcipt 2023. 4. 18. 17:25
    728x90
    반응형

    Typescript generic 

    typescript generic 이란 함수나 클래스에서 사용할 타입을 결정해주는것이다.

    function myGenericFn<T>(x: T[]): T {	// T 라는 타입을 받아와 타입을 결정한다.
        return x[0];
    }
    
    // <> 사이에 number 타입을 선언하여 함수의 타입을 number로 선언한다.
    let indexZero = myFn<number>([5, 8]);	
    
    // <> 사이에 string 타입을 선언하여 함수의 타입을 number로 선언한다.
    let indexOne = myFn<string>(['5', '8']);

     

     

     

    반응형

     

     

     

    generic 을 사용할때도 파라미터의 타입이 제대로 들어 가는지 확인하기위해 <> 안에 extends 키워드를 사용하여 타입파라미터에 제한을 할 수 있다. ( narrowing 효과 )

    function minusFn<MyType extends number>(x: MyType) {	// extends 를 넣어 number타입을 체크한다.
        return x - 1;
    }
    
    let result = minusFn<number>(100);

     

    커스텀으로 된 타입으로도 타입파라미터를 제한할 수 있다.

    interface LengthCheck {	// interface를 선언한다.
        length: number
    }
    function checkLen<T extends LengthCheck>(x: T) {	// 선언된 interface 타입을 extends한다.
        return x.length;
    }
    
    let size = checkLen<string>('Hello');	
    let size2 = checkLen<string[]>(['Hello']);
    728x90
    반응형

    'Front-end > Typesrcipt' 카테고리의 다른 글

    Typescript - declare  (0) 2023.04.18
    Typescript - tuple type  (0) 2023.04.18
    Typescript - import & export & namespace  (0) 2023.04.18
    Typescript - protected & static  (0) 2023.04.18
    Typescript - public & private  (0) 2023.04.18
Designed by Tistory.