반응형
코딩면접, 코딩테스트
Q) 타입 스크립트에서 인덱스 시그니처에 대해 설명해 주세요.
프로퍼티 명을 추상적으로 쓰고 싶은 경우 사용합니다. 많은 프로퍼티 이름의 타입을 하나하나 기술하기는 힘들 경우 인덱스 시그니처를 사용하게 됩니다. 인덱스 시그니처는 {[key:T : U]}와 같이 기술하며 이 오브젝트 타입 T의 모든 프로퍼티 명은, 타입 U를 가져야 한다는 것을 의미합니다.
위 예에서 movieName을 키로 값이 평점을 가지는 프로퍼티를 정의하고 있습니다.
키의 타입은 string 또는 number여야 합니다. 재미있는 것은 인덱스 시그니처를 string으로 정해도 number를 사용할 수 있다는 점입니다. 그 이유는 자바스크립트에서 object의 인덱스를 해석할 때 number로 기재되어 있을 경우 string으로 변환한 후 해석하기 때문입니다.
또한 키의 형태가 같은 시그니처는 사용할 수 없습니다.
위 예와 같이 프로퍼티의 이름이 달라도 타입이 같으면 에러가 발생합니다.
반응형
'코딩테스트 > typescript' 카테고리의 다른 글
[코테] Q12. Access Modifier 접근한정자란 무엇인가요? (0) | 2022.07.15 |
---|---|
[코테] Q11. 타입스크립트에서 함수 오버로드란? (0) | 2022.07.14 |
[코테] Q10. 타입스크립트 .map 파일이 무엇인가요? (0) | 2022.07.13 |
[코테] Q9. 타입스크립트에서 null과 undefined를 체크하는 방법 (0) | 2022.07.11 |
[코테] Q8. 타입스크립트의 getter, setter란 무엇인가요? (0) | 2022.07.11 |
최근댓글