是否可以让 Flow 验证器检查 react setState 中的 immutability-helper 更新语法?
Is it possible to make Flow validator check immutability-helper update syntax in reacts setState?
我正在使用 flow with Visual Studio Code integrated with vscode-flow-ide plugin . Immutability update method comes from immutability-helper。
是否可以让 Flow 验证器检查 ::update 方法语法是否存在您的状态类型定义的错误。
示例:
type State = {
validTitle: boolean,
post: {
featured: boolean
}
};
this.setState({
validTitle: false,
post: update(this.state.post, {
featured: { $set: "" }
})
});
像 "validTitle" 属性 这样的每个简单状态更新都将被正确验证,但 ::update 方法调用将因其声明而被跳过:
update<any, never>(target: any, spec: Spec<any, never>): any
所以我的问题是:
有没有办法强制 Flow 查找更新方法语法中的错误,并且在我的示例中发现 "featured" 属性 被设置为无效值?
很遗憾,目前还没有这样的方式。
我已经开始考虑编写自己的包装函数来检查中间的类型,但后来我意识到回退到对数组 [...array]
使用 Object.assign
和展开运算符是公平的,很容易保持状态不变性。
当然,使用这种方法,流程验证器会通知您不正确的值分配。
我正在使用 flow with Visual Studio Code integrated with vscode-flow-ide plugin . Immutability update method comes from immutability-helper。 是否可以让 Flow 验证器检查 ::update 方法语法是否存在您的状态类型定义的错误。
示例:
type State = {
validTitle: boolean,
post: {
featured: boolean
}
};
this.setState({
validTitle: false,
post: update(this.state.post, {
featured: { $set: "" }
})
});
像 "validTitle" 属性 这样的每个简单状态更新都将被正确验证,但 ::update 方法调用将因其声明而被跳过:
update<any, never>(target: any, spec: Spec<any, never>): any
所以我的问题是: 有没有办法强制 Flow 查找更新方法语法中的错误,并且在我的示例中发现 "featured" 属性 被设置为无效值?
很遗憾,目前还没有这样的方式。
我已经开始考虑编写自己的包装函数来检查中间的类型,但后来我意识到回退到对数组 [...array]
使用 Object.assign
和展开运算符是公平的,很容易保持状态不变性。
当然,使用这种方法,流程验证器会通知您不正确的值分配。