javascript – 不允许在给定的流类型上使用不存在的键

给出这个简单的对象:{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'); 
}

你会得到一个错误,说fy上不存在xyz.你如何在Flowjs上得到相同的结果?

我试过以下但是flowjs没有抛出任何错误:

type foo = {|
    id: string,
    v: number,
|};

const bar: foo = { id: 'something', v: 1111 };


if (bar.xyz) { // no errors
    console.log('xyz');
}

最佳答案 Flow始终允许对ifs进行属性检查.您可以将其用作解决方法:

if (!!bar.xyz == true) {
点赞