• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

5:55 내용에 대하여 질문드립니다.

21.10.30 23:25 작성 조회수 237

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는
 
안녕하세요!
 
강의 잘 듣고 있습니다.
 
index type 부분 설명에서
 
강의내용에는
 
yearMap['2000'] = 'million'; 이 에러가 나지 않는데
 
현재 제가 동일하게 입력하니 에러가 발생하고 있어 문의드립니다.
 
혹시 어떤 문제일까요??
 

답변 2

·

답변을 작성해보세요.

2

안녕하세요
타입스크립트 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

류시명님의 프로필

류시명

질문자

2021.11.02

정말 감사합니다!!