在以下代码中,存在类型为Number
的var,以及类型为Number
的对象属性。尝试在两者上访问未知属性时,flow仅在var。
var obj: {
x: number,
get: () => number
} = {
x: 5,
get() {
return this.x && this.x.a.b.c;
}
};
module.exports = function () {
var y = 6,
z = y.a.b.c;
return z + obj.get();
};
错误是
z = y.a.b.c;
^ property `a`. Property not found in
z = y.a.b.c;
^ Number
为什么不在对象属性上标记相同的访问权限?
更新:我刚注意到如果从obj中删除类型注释,则流程会报告obj.get中的错误。不知道为什么会这样。