interface Obj {
name: string;
num?: number;
readonly sex?: string;
[surName: string]: string; //添加这行后,前面的 num 会报错
}
const func = (x: Obj):void => {
console.log(x)
}
// 想实现下面的效果
func({name: 'june', str: 'str'}) // 这个能正常识别
func({name: 'june', boo: false}) // 这个会报错
num
这个键的类型不是string
吗?但[surName: string]: string
要求所有键为string
类型的对应值类型是string
,这与num: number
矛盾了。