반응형
object 자료에 타입을 미리 만들어주고 싶은데, 어떤 속성들이 들어올 수 있는지 모르거나, 타입 지정할 속성이
너무 많은 경우에는 index signatures를 사용하면 편하게 가능하다.
index signatures
interface stringOnly {
[key :string] :string
}
let obj :stringOnly = {
name :'kim',
age :'20',
location :'seoul'
}
StringOnly라는 interface를 만들었다.
특이한 점으로 속성으로 [ key :string] : string 이라고 정의가 되어있다. 이렇게 정의하면
" 모든 string으로 들어오는 key값에 할당되는 value는 string이어야 한다. " 라는 타입이 된다.
즉, { 모든 속성 : string } 과 동일하다.
interface StringOnly {
age : number, ///에러
[key: string]: string,
}
interface StringOnly {
age : number, ///가능
[key: string]: string | number,
}
[]를 사용한 문법은 다른 속성과 함께 사용할 수 있지만,
모든 string key는 string 속성이라는 뜻과 "age" 는 number라는 논리적으로 말이 되지 않는 경우에는 에러가 발생한다.
반응형
'TypeScript > 기초' 카테고리의 다른 글
[TypeScript] implements 키워드 (1) | 2022.07.13 |
---|---|
[TypeScript] d.ts (2) | 2022.07.12 |
[TypeScript] Declare & Ambient Module (1) | 2022.07.11 |
[TypeScript] Tuple Type (2) | 2022.07.10 |
[TypeScript] React에서 사용하기_2편 (1) | 2022.07.10 |