제네릭은 선언 시점이 아니라 생성 시점에 타입을 명시하여 하나의 타입만이 아닌 다양한 타입을 사용할 수 있도록 하는 기법이다.
라이브러리를 만들거나, 다른 개발자가 사용할 기능을 개발하는 경우엔 제너릭이 유용할것이다.
그 외 대부분의 경우에는 제너릭을 직접 작성할 일은 없을것이다.
대부분의 경우 작성해놓은 제너릭을 사용만 하게 될것이다.
Generic의 일반적인 형태
type SuperPrint = {
<T>(arr: T[]): T
}
const superPrint: SuperPrint = (arr) => arr[0]
const a = superPrint([1, 2, 3, 4]) // number
const b = superPrint([true, false, true]) // boolean
const c = superPrint(["a", "b", "c"]) // string
const d = superPrint([1, 2, true, false, "hello"]) // number | boolean | string
제너릭을 사용 하는 또 다른 경우
- 타입을 생성할 수 도 있다
- 타입을 확장할 수 있다.
- 어떤경우는 코드를 저장하기도한다.
type Player<E> = {
name: string
extraInfo: E
}
type PlayerExtra = {
favFood: string
}
type GamePlayer = {
Player<PlayerExtra>
}
const latte:GamePlayer = {
name: "latte",
extraInfo: {
favFood: "milk"
}
}
const hyeon:Player<null> = {
name: "Hyeon",
extraInfo: null
}
'Study > TypeScript' 카테고리의 다른 글
[Typescript] Class 객체 지향 코드 (0) | 2022.10.07 |
---|---|
[Typescript] over loading (0) | 2022.10.06 |
[Typescript] call signature (0) | 2022.10.06 |
[TypeScript_study] type지정을 쉽게 하는 팁 (0) | 2022.07.24 |
[TypeScript] TypeScript & React SyntheticEvent(합성이벤트) (0) | 2022.07.22 |