typescript
[타입스크립트] 제네릭 에 대하여
승딱
2021. 6. 3. 11:40
반응형
타입을 마치 함수의 파라미터처럼 사용하는 것을 제네릭 이라고 한다.
예시를 살펴보자
function exgeneric<T>(text : T): T{
return text
}
exgeneric <string> ("wow");
exgeneric <number> (100);
둘다가능
꺽쇠 자리의 T 라는 문자가 타입자리에 반복 된것을 볼수 있다.
이 의미는 T 가 쓰이는 자리(파라미터, 리턴)에 타입을 일괄적으로 정해줄수 있다는 의미이다.
이것의 이점은 하나의 함수를 여러 데이터 타입으로 사용할수 있게된다.
물론 타입을 any 로 설정하게 되면 이러한 이점을 누릴 수도 있지만 이경우 동적으로 타입이 정해져 타입스크립트의 이점을 누릴수 없게 되니까 참고해서 상황에 맞게 사용하자
좀더 응용된 예시 살펴보고 끝내자
function exgeneric <T> (arg : T[]): number {
return arg.length
}
exgeneric <string> (["wow","wowwow","wowwowowow"]);
exgeneric <number> ([100,200,300]);
exgeneric <boolean> ([true,true,true,false]);
exgeneric <void> ([null,undefined])
void란
값을 반환하지 않는 함수의 타입을 지정할때 쓰일수 있는 타입이다
타입이 없다라는 의미이며 undefined 나 null 을 할당할수 있다.
배열 타입지정
number[] , Array<number>
튜플 타입지정
let x: [string, number];
x = ["hello", 10]; // OK
x = [10, "hello"]; // Error