Typescript没有显示错误,即使我没有实现接口的所有强制属性


interface Test {
foo: string;
bar: string;
}
const obj = {
foo: 'ok'
} as Test;

即使我没有在obj中实现bar, Typescript编译器也没有提示错误。我希望在上面的例子中显示错误,因为bar不是一个可选的属性。我可以知道这是怎么回事吗?提前感谢。与此同时,下面的演示也让我感到困惑。obj只实现了Test,这意味着它应该只包含foobar。然而,当我添加zar时,也没有提示错误。

interface Test {
foo: string;
bar: string;
}
const obj = {
foo: 'ok',
bar: 'ok',
zar: 'expected not ok'
} as Test;

请看看这个家伙对as做什么的回答。

关键字做什么?。因此as关键字告诉编译器通过强制将其视为您的类型,因此请尝试以下操作:

interface Test {
foo: string;
bar: string;
}
const obj: Test = {
foo: 'ok'
};

相关内容

  • 没有找到相关文章