인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

낄낄이드래곤님의 프로필 이미지
낄낄이드래곤

작성한 질문수

타입스크립트 입문 - 기초부터 실전까지

인덱싱 방식을 정의하는 인터페이스

질문드려요 !

작성

·

166

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

답변감사합니다 !! 

낄낄이드래곤님의 프로필 이미지
낄낄이드래곤

작성한 질문수

질문하기