21.10.30 23:25 작성
·
332
0
답변 2
2
2021. 10. 31. 11:32
안녕하세요
타입스크립트 4.4부터 스펙이 변경된 것 같습니다
인덱스로 문자열을 입력 하더라도 숫자로 파싱 가능하면 숫자로 인식하는 것 같습니다
참고로 `yearMap['1000a'] = '1000'` 를 입력하면 에러는 나지 않습니다
사실 자바스크립트에서는 인덱스로 숫자를 입력해도 문자열로 변환해서 처리하기 때문에 숫자와 문자열의 구분이 없습니다
예를 들어, 아래 코드에서 'a' 는 'b' 로 덮어써집니다
```
const obj = {};
obj[2] = 'a';
obj['2'] = 'b';
console.log(obj); // ==> {2: 'b'}
```
따라서 타입스크립트가 인덱스로 문자열을 입력해도 숫자로 파싱 가능하면 숫자로 인식하는 것은 좀 더 올바른 방향으로의 발전인 것 같네요
아마도 아래 부분에서 같이 변경된 것 같습니다
링크1: https://devblogs.microsoft.com/typescript/announcing-typescript-4-4-beta/#symbol-template-signatures
링크2: https://github.com/microsoft/TypeScript/pull/44512
0