Item16 - number 인덱스 시그니처보다는 Array,튜플,ArrayLike 를 사용하기
자바스크립트에서는 숫자는 키로 사용할 수 없습니다. 만약 사용한다면 자바스크립트 런타임은 문자열로 변환합니다
{
1:2,
3:4
}
>> 문자열로 변환되어진다.
{
"1":2,
"3":4
}
하지만 타입스크립트는 숫자 키를 허용하며 문자열 키와 다른것으로 인식합니다.
interface Array<T>{
[n:number]:T;
} // 가능
런타임에는 키가 모두 문자열키로 인식되어 완전히 가상의 코드라고 할 수 있지만, 타입 체크 시점에 오류를 잡을 수 있어 유용합니다.
function get<T>(array: T[], k: string): T {
return array[k] // 에러 발생 number 타입이 아니기때문
}
'Typescript' 카테고리의 다른 글
Effective Typescript - 아이템18 (0) | 2023.04.12 |
---|---|
Effective Typescript - 아이템17 (0) | 2023.04.12 |
Effective Typescript - 아이템15 (0) | 2023.04.11 |
Effective Typescript - 타입 연산과 제네릭 사용으로 반복 줄이기 (0) | 2023.04.11 |
Effective Typescript - 타입과 인터페이스의 차이점 알기 (0) | 2023.04.09 |