• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

질문드려요 !

20.12.26 18:08 작성 조회수 122

2

아래 결과를 보았을 때 index를 number 로 지정해주면

anotherDict 에서  아래와 같은 오류가 뜹니다 

index 를 string 으로 지정해 주면

arr 에서 아래와 같은 오류가 뜹니다. 

인덱스 시그니처가 없다는 것으로 보아  오브젝트의 속성이름이 없어서 그런 것 같은데 (배열이므로) 

[index: number] 은 배열에 사용하고 [index: string] 은 오브젝트에 사용하는 타이핑인건가요?

한가지 더 아래와 같은 형태는 오류표시 없이 number,string 모두 가능하던데 왜그런걸까요,,? 

오브젝트의 key 값은 string 이라고  알고있는데

위의 dict 같은 경우는바닐라자바스크립트에서  dict[0] , dict['0'] 모두 동작하는 걸로 봐서 [] 안에 숫자형을 넣으면 자동으로 문자로 변환되서 key 값에 대응하는 건지, 

key 에 숫자를 쓰면 문자,숫자 둘다 가능한건지 잘 모르겠네요..

+) 혼자공부하는 학생인데 강의 잘 듣고 있습니다 

선생님 최고입니다 ㅎㅎㅎ

답변 2

·

답변을 작성해보세요.

1

안녕하세요 경희대 한남동 만렙님, 만렙이시네요... ㅎㅎ

좋은 질문 주셨는데 바로 답변 드리겠습니다! :) 일단 질문의 첫 부분에서 아래와 같이 정의하셨는데요

var anotherDict: StringArray = { name1: 'value', name2: 'value2', .....};

요 부분은 StringArray의 키에 `number`가 들어와야 하는데 객체의 키가 `string`으로 정의되어 있어서 그렇습니다 :) 그 관점에서 다시 한번 코드를 찬찬히 살펴보시면 혼란스러워 하셨던 부분이 해결될 것 같아요 :) 더 보시고 궁금하신거 있으면 말씀해 주세요.

제가 최고라고 말씀해주셔서 감사해요. 한남동님도 빠르게 타입스크립트 만렙 찍으셨으면 좋겠습니다 ^^

수강해 주셔서 감사합니다!

0

답변감사합니다 !!