精确对象类型定义和解构
问题描述:
我限定具有精确形状的State
类型:精确对象类型定义和解构
type State = {| someString: string, someNumber: number |};
我的初始状态满足这样的定义:
const initialState : State = {
someString: 'hey',
someNumber: 1,
};
创建函数,接受状态,并返回一个但它的修改后的副本不,但:
function doStuff (state : State) : State {
return {
...state,
someNumber: 2,
};
}
src/flowTest.js:10 10: return {
^object literal. Inexact type is incompatible with exact type
9: function doStuff (state : State) : State {
^^^^^ exact type: object type
这个流程不明白解构或我错过了什么?我注意到,将类型定义更改为非严格(移除方括号)将允许此代码通过。但是,我试图让我防止任何错别字。
谢谢!
看起来像https://github.com/facebook/flow/issues/2405? – loganfsmyth
@loganfsmyth哎,你是对的...我希望我之前发现过这个问题。随意写一个答案指出这个问题,我会标记为正确的。 –