Javascript 为什么可以';是否将流量转换为不太特定的类型?

Javascript 为什么可以';是否将流量转换为不太特定的类型?,javascript,flowtype,Javascript,Flowtype,我遇到的非常简单的版本: (({a: 42}: {a?: number}): {a?: number, b?: number}) Flow抱怨第一个对象不包含b,但b是可选的。为什么?如果你能做到,你也可以做到。注意b的类型是如何神奇地改变的。你可以绕过这个错误,但这也不太合理。@noppa--关于({a:42}:{a:a:number}):{a:number,b:number})你可以通过另一个向原始对象添加一个新属性b,如和{a:number}将不再正确。但是,如果您使b协变,

我遇到的非常简单的版本:

(({a: 42}: {a?: number}): {a?: number, b?: number})

Flow抱怨第一个对象不包含
b
,但
b
是可选的。为什么?

如果你能做到,你也可以做到。注意
b
的类型是如何神奇地改变的。你可以绕过这个错误,但这也不太合理。@noppa--关于
({a:42}:{a:a:number}):{a:number,b:number})
你可以通过另一个向原始对象添加一个新属性
b
,如和
{a:number}
将不再正确。但是,如果您使
b
协变,