작성
·
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