这是我的代码:
// @flow
var x = {a: 'foo'};
var key = Math.random() > 0.5 ? 'b' : 'a';
var value = x.hasOwnProperty(key) ? x[key] : 'default';
console.log(value);
所以只有当 key
确实是 x
的属性时,x[key]
才会被访问,否则使用默认值。但是 Flow 不喜欢这样,它说:
test-flow.js:5
5: var value = x.hasOwnProperty(key) ? x[key] : 'default';
^^^ property `b`. Property not found in
5: var value = x.hasOwnProperty(key) ? x[key] : 'default';
^ object literal
知道我做错了什么吗?
最佳答案
关于javascript - Flow 不喜欢这段代码,它有条件地访问一个对象的属性,只有当它存在时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37897927/