2 个回答

这实际上是个 Feature。

const a: Position = {
    lon: 1,
    lat: 2,
    name: 3 //报错
}

回到你的例子,实际上因为 a 是一个变量,它的具体类型没有办法在运行前确定,所以类型系统没法给你足够“良好”的提示你类型有问题,而后者是一个字面量,它的类型在运行前就能确定,所以能够提示你类型有问题,这个功能实际上在 1.6 版本之后才有。更严格的对象字面赋值检查