背景
- 限制对象的索引类型
- 对象的索引类型提示
原因
索引类型不能直接使用字面量类型或者泛型
示例
type LiteralType = 'foo' | 'bar'
//错误
type ObjType = {
[index: LiteralType]: string
}
//错误
interface ObjType {
[key in LiteralType]: string
}
`//正确`
type ObjType = {
[key in LiteralType]: string
}
const obj: ObjType = {
foo: 'hello',
bar: 'world'
}