더북(TheBook)

그래서 Array<string>하면 [key: number]: string이 되어 요소의 타입이 전부 string이 됩니다. 제네릭이 없었다면 다음과 같이 요소 타입별로 Array 타입을 다르게 선언해야 했을 것입니다.

interface StringArray {
  [key: number]: String,
  length: number,
  //기타 속성들
}
interface BooleanArray {
  [key: number]: BooleanArray,
  length: number,
  //기타 속성들
}

제네릭 덕분에 타입 간에 중복되는 부분을 없애고 하나의 타입을 여러 방법으로 재사용할 수 있게 되었습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.