-
Typescript - genericsFront-end/Typesrcipt 2023. 4. 18. 17:25728x90반응형
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