Javascript/TypeScript

[TypeScript] 제네릭(Generics) 사용하는 이유

뉴벡엔드 2024. 3. 13. 18:01

제네릭 사용하는 이유

 

type Test = {
    (arr : number[]) : void;
    (arr : string[]) : void;
    (arr : boolean[]) : void
}


const test1 : Test =(arr) => {
    arr.forEach(a => console.log(a))
}

test1([1,2,3,4])
test1(["a","b","c"])
test1([true,false,true])
test1([1,"a",true,"b"])

 

test1에 새로운 종류의 배열을 넣을때 마다 test타입에 계속 내용을 추가해야는 불편함이 있음

15번째 줄처럼 여러 타입이 오면 처리하기 힘듬

 


 

문법

type Test2 = {
    <T>(arr:T[]) : T
}

const test2 : Test2 = (arr) => arr[0]

const a = test2([1,2,3,4])
const b = test2(["a","b","c"])
const c = test2([true,false,true])
const d = test2([1,"a",true,"b"])

 

여러개의 파라미터를 받을려면 아래와 같이 하면 된다.

 

type Test2 = {
    <T, V>(arr:T[], b:V) : T
}

//type Test2 = <T, V>(arr:T[], b:V) => T

 

 

 

 

반응형