老师,你好,关于索引签名这里我有点不理解
举个例子
export interface Test {
[propName: string]: number
}
const a: Test = {
aa: 12,
bb: 34,
cc: 'jfeiaoj', // 报错
}
在这里 声明 变量 a
类型 为 Test
接口的时候,就会约束 变量 a
的索引 仅能为 string
其 对应的 value
只可为 number
。
你不能说 让 key 为 一个 object
, value 值为 string
之类的。
以上 是我对 索引签名的 理解,即它是一个约束!!!
视频当中老师说 因为 key 是一个未知的值而报错,那么在我下面这个例子当中,也没有报错啊
export interface Test {
aa: number,
bb: number,
// [propName: string]: number
}
const a: Test = {
aa: 12,
bb: 34,
}
function out(config: Test, key: string) {
return config[key]
}
我不能理解视频中 报错的原因。老师可以解释下吗。。最好能有个 简单demo那种
登录后可查看更多问答,登录/注册