제네릭 ( Generic ) 의 재사용

배병일 ㅣ 2023. 8. 4. 11:24

제네릭 ( 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