给定以下代码
interface IPerson {
firstName: string;
lastName: string;
}
var persons: { [id: string]: IPerson; } = {
"p1": { firstName: "F1", lastName: "L1" },
"p2": { firstName: "F2" }
};
为什么初始化不被拒绝?毕竟,第二个对象没有“lastName”属性。
原文由 mgs 发布,翻译遵循 CC BY-SA 4.0 许可协议
编辑:这已在最新的 TS 版本中得到修复。引用@Simon_Weaver 对 OP 帖子的评论:
显然,在声明时传递初始数据时这不起作用。我猜这是 TypeScript 中的一个错误,所以你应该在项目站点提出一个错误。
您可以通过在声明和初始化中拆分示例来使用类型化字典,例如: