为什么不在条件中检查流密封对象类型属性

时间:2017-12-06 03:05:26

标签: javascript flowtype

在条件中未检查密封对象属性的原因是什么?

例如:

// Create a sealed object type
const o = {
  Foo: 'Foo',
};

// Access a non-existent property
// Reports an Error
const fooz = o.Fooz;

// Conditional with non-existent property
// Does not report an error
if (o.Fooz === undefined) {}

只是澄清 - 这是Flow sealed object

1 个答案:

答案 0 :(得分:0)

我将此问题发布为Flow issue。我收到了回复:

  

不存在不是条件表达式中的错误。见   来自the source的评论。

源评论内容如下:

  

条件表达式像表达式一样被检查,除了   即使在此类财产时,也暂时允许财产访问   不存在。这适用于常见的JavaScript测试习惯   在使用该财产之前存在财产。