给出这个简单的对象:{ id: 'x', value: 1 }
,在TypeScript中尝试:
type foo = {
id: string,
v: number,
};
const bar: foo = { id: 'something', v: 1111 };
// refrencing non existent key
if (bar.xyz) {
console.log('xyz');
}
您会收到xyz does not exist on foo
的错误消息。如何在 Flowjs 上获得相同的结果?
我已尝试过以下操作,但flowjs不会抛出任何错误:
type foo = {|
id: string,
v: number,
|};
const bar: foo = { id: 'something', v: 1111 };
if (bar.xyz) { // no errors
console.log('xyz');
}
答案 0 :(得分:1)
您的问题仍然是一个悬而未决的问题。 https://github.com/facebook/flow/issues/106
只要该问题处于打开状态,您就可以强制执行将bar.xyz
类型转换为布尔值。
if (Boolean(bar.xyz))
您将收到此错误。
10:if(Boolean(bar.xyz)){ ^ property
中找不到的属性xyz
。10:if(Boolean(bar.xyz)){ ^对象类型
答案 1 :(得分:0)
Flow始终允许if
中的属性检查。您可以将其用作解决方法:
if (!!bar.xyz == true) {