interface Test {
foo: string;
bar: string;
}
const obj = {
foo: 'ok'
} as Test;
即使我没有在obj
中实现bar
, Typescript编译器也没有提示错误。我希望在上面的例子中显示错误,因为bar
不是一个可选的属性。我可以知道这是怎么回事吗?提前感谢。与此同时,下面的演示也让我感到困惑。obj
只实现了Test
,这意味着它应该只包含foo
和bar
。然而,当我添加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'
};