제네릭 ( Generic ) 을 어떤 식으로 사용하는지.
type Player<T> = {
name: string;
extraInfo: T;
};
const test: Player<{ favFood: string }> = {
name: "t1",
extraInfo: {
favFood: "t2",
},
};
Player라는 타입을 만들고 제네릭 <T>를 extraInfo의 타입으로 정함.
test 라는 상수의 타입을 Player로 지정하고 Player 타입의 제네릭<T>안에 favFood를 만들고
타입을 string으로 지정함.
제네릭 <T> 는 넣기로 한 타입으로 정해지기 때문에 number, boolean ... 등 다 가능하다.
같은 조건이지만 어떤 식으로 쓸 수 있는지.
1.
type Player<T> = {
name: string;
extraInfo: T;
};
type testPlayer = Player<{ favFood: string }>;
const test: testPlayer = {
name: "t1",
extraInfo: {
favFood: "t2",
},
};
2.
type Player<T> = {
name: string;
extraInfo: T;
};
type testExtra = {
favFood: string;
};
type testPlayer = Player<testExtra>;
const test: testPlayer = {
name: "t1",
extraInfo: {
favFood: "t2",
},
};
제네릭으로 만든 타입안에는 다른 타입을 넣어서 마음대로 확장, 사용 가능함.
3.
type Player<T> = {
name: string;
extraInfo: T;
};
const test1: Player<{favFood:string}> = {
name: "t1",
extraInfo: {
favFood: "kimchi",
},
};
const test2: Player<null> = {
name: "t2",
extraInfo: null,
};
이렇게 보면 상속과 비슷해 보이지만 이건 엄연히 제네릭의 재사용이라고 볼 수 있음.
'TypeScript' 카테고리의 다른 글
다향성 ( Polymorphyism ), 제네릭 ( Generic ) (0) | 2023.08.04 |
---|---|
오버로딩 ( Overloading ) (0) | 2023.08.03 |
void 타입 (0) | 2023.08.03 |
함수의 call signature (0) | 2023.08.03 |
type 정해주는 법 (0) | 2023.08.03 |