본문 바로가기
개발/TypeScript

Generic

by 안뇽! 2022. 5. 9.
반응형

코딩애플 강의를 사고 한참동안 안보다가 프로젝트에서 동료분에 제너릭을 사용하는 것을 보고 강의에서 찾아보았다.

그니까 코딩애플 강의내용을 복습한단 뜻


Generic을 사용하면 타입을 파라미터로 입력할 수 있다.

함수에 <>를 열면 파라미터를 입력할 수 있는데, 이 꺽새괄호 안에는 타입만 입력할 수 있다.

Generic 사용 전

generic을 사용하기 전 예제부터 살펴보자.

function func(x:unknown[]){
    return x[0];
}

let a = func([4,2])
console.log(a) // 4

console.log(a+1) // Error

a는 숫자 같지만 타입은 unknown이다.

타입추론을 해주지 않고 unknown으로 남아 있기에 타입지정을 :number 이런걸로 강제하기 전까지는 number 타입으로 변하지 않는다.

 

이렇게 불확실한 unknown, any, union 타입을 입력하면 나오는 값도 Unknown, any, union 타입이고 이 때문에 일어나는 문제들이 많다.

 

이에 대한 해결책은

 

1. narrowing 잘하기

2. generic 사용하기

 

Generic

Generic은 타입을 파라미터로 함수에 입력하는 방식이다. 그럼 원하는 곳에 가변적으로 타입지정이 가능해진다.

function func<Type>(x: Type[]) {
  return x[0];
}

let a = func<number>([9, 3, 4]);
console.log(a);//9

let b = func<string>(['june','hee'])
console.log(b);//'june'

이렇게 입력한다.

그럼 함수를 사용할 때 <>안에 파라미터처럼 타입을 입력할 수 있다.

 

그럼 unknown을 사용하지 않고도 필요할 때마다 필요한 타입을 사용할 수 있다.

 

타입파라미터는 자유작명하는데 보통 <T> 로 많이 한다고 한다.

반응형