
index signatures
interface StringOnly{
[key: string]: string,
}
let user : StringOnly = {
name:'hong',
age: '20',
location : 'seoul'
}
1. object 자료에 어떤 속성들이 들어올지 모르는 경우
2. 타입지정할 속성이 너무 많은 경우
=> [ key: 타입 ] : 타입 형태로 작성하면
모든 속성은 해당 타입을 가져야 한다라는 의미.
array 형태
interface StringOnly {
[key: number]: string,
}
let obj :StringOnly = {
0 : 'kim'
1 : '20',
2 : 'seoul'
}
단순히 key값을 number로 변경하면 obj [0]과 같이 array형태처럼 사용이 가능.
Recursive index signatures
interface MyType {
'font-size': MyType | number
}
let css: MyType = {
'font-size' : {
'font-size' : {
'font-size' : 14
}
}
}
1. object 자료가 중첩된 경우
2. 한 줄로 타입지정 가능.
여러가지 속성의 타입이 같은 경우 자주 애용할 스킬인 것 같다.
하지만 Recursive 문법은 object자료가 중첩이 되는 경우는 흔치 않아서 사용할 일이 적을 것으로 예상된다.
'TypeScript' 카테고리의 다른 글
조건문으로 타입만들기 & infer (0) | 2023.07.04 |
---|---|
object 타입 mapping (0) | 2023.07.04 |
implements 키워드 (0) | 2023.07.04 |
d.ts 타입 정리 파일 (0) | 2023.07.04 |
Ambient Module + declare (0) | 2023.07.04 |

index signatures
interface StringOnly{
[key: string]: string,
}
let user : StringOnly = {
name:'hong',
age: '20',
location : 'seoul'
}
1. object 자료에 어떤 속성들이 들어올지 모르는 경우
2. 타입지정할 속성이 너무 많은 경우
=> [ key: 타입 ] : 타입 형태로 작성하면
모든 속성은 해당 타입을 가져야 한다라는 의미.
array 형태
interface StringOnly {
[key: number]: string,
}
let obj :StringOnly = {
0 : 'kim'
1 : '20',
2 : 'seoul'
}
단순히 key값을 number로 변경하면 obj [0]과 같이 array형태처럼 사용이 가능.
Recursive index signatures
interface MyType {
'font-size': MyType | number
}
let css: MyType = {
'font-size' : {
'font-size' : {
'font-size' : 14
}
}
}
1. object 자료가 중첩된 경우
2. 한 줄로 타입지정 가능.
여러가지 속성의 타입이 같은 경우 자주 애용할 스킬인 것 같다.
하지만 Recursive 문법은 object자료가 중첩이 되는 경우는 흔치 않아서 사용할 일이 적을 것으로 예상된다.
'TypeScript' 카테고리의 다른 글
조건문으로 타입만들기 & infer (0) | 2023.07.04 |
---|---|
object 타입 mapping (0) | 2023.07.04 |
implements 키워드 (0) | 2023.07.04 |
d.ts 타입 정리 파일 (0) | 2023.07.04 |
Ambient Module + declare (0) | 2023.07.04 |