我的函数中有一个对象
let someStyle = {
width: 200,
backgroundColor: 'blue'
height: 40,
}
然后向其中添加属性
someStyle.borderRadius: 15
这里的流程引发了错误,由于对象文字中缺少15,因此无法为someStyle.borderRadius分配15
如何禁用someStyle
对象的流?我在someStyle上方尝试了// @flow-disable
,但没有成功
此外,如果我们执行//@flow
,是否必须为所有对象定义类型?在我的无状态函数中?
答案 0 :(得分:2)
有几种解决方法:
选项1:如果样式对象始终具有这种形状的宽度,高度,backgroundColor和可选的borderRadius,那么您可能只想像这样定义对象的类型:
/* @flow */
type Style = {
width: number,
height: number,
backgroundColor: string,
borderRadius?: number
}
let someStyle: Style = {
width: 200,
backgroundColor: 'blue',
height: 40,
}
someStyle.borderRadius = 15;
选项2:如果您的样式对象并非总是具有这种形状,而是可以应用任何通用样式,那么您将需要更通用的东西。
/* @flow */
type Style = {
[string]: mixed
}
let someStyle: Style = {
width: 200,
backgroundColor: 'blue',
height: 40,
}
someStyle.borderRadius = 15;
选项3:如果您只想抑制该错误,则通常可以这样做:
/* @flow */
let someStyle = {
width: 200,
backgroundColor: 'blue',
height: 40,
}
// $FlowFixMe
someStyle.borderRadius = 15;