작성
·
293
0
Arr 의 타입이 ‘0’, ‘1’, ‘2’ 라고 하셨는데, '0', '1', '2' + number 타입이 허용되는 이유는 무엇일까요??
객체의 키를 타입으로 표현할때 모든 number 타입이 원래 허용되는것이고, 위와같은 케이스에서는 as const 키워드로 readonly 속성이 추가되었기 때문에 모든 Number Type + ‘0’, ‘1’, ‘2’ 타입을 따로 구할수 있는 개념이라고 이해하면 될까요?
실제 구현된 코드에서는 '-readonly' 키워드로 readonly 속성이 제거되었는데요. 이러면 Arr 속성의 경우 key 의 속성은 number[] 만 할당할수 있는걸로 나오는데 어떻게 '0', '1', '2' 를 구할수 있는지 궁금합니다 !
답변 1
1
string은 정확하게 현재 존재하는 것만 나오는데 number는 전부 허용되는 이유는 일단 타입스크립트의 한계 때문으로 보입니다. 숫자도 0, 1, 2만 되어야 정상인데 구현 과정에서 어떤 히스토리가 있었던 것 같습니다.
number[]만 할당할 수 있는걸로 나온다는 게 무슨 말씀이신가요? [number, number, number] 아닌가요?