我有以下类型:
type MyType = {
['x']?: string;
['y']?: number;
} & { [key: string]: string };
当我写这篇文章时:
const a: MyType = {
'x': 'str',
'y': 5
}
我收到一个错误(y 是一个数字,但需要一个字符串),这根据索引签名是有意义的。 但是当我写这个:
const b: MyType = {};
b['x'] = 'str2';
b['y'] = 6
它工作正常。 两者有什么区别?这甚至应该起作用吗?