如何不为特定对象添加流类型
How to not add flow type for particular object
我的函数中有一个对象
let someStyle = {
width: 200,
backgroundColor: 'blue'
height: 40,
}
然后我向它添加属性
someStyle.borderRadius: 15
此处流程抛出错误 无法将 15 分配给 someStyle.borderRadius 因为它在对象文字中丢失
如何禁用 someStyle
对象的流?我在 someStyle 上方尝试了 // @flow-disable
,但没有成功
此外,如果我们这样做 //@flow
是否必须为所有对象定义类型?在我的无状态函数中?
有几种方法可以解决这个问题:
选项 1:如果您的样式对象始终具有宽度、高度、背景颜色和可选的 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;
我的函数中有一个对象
let someStyle = {
width: 200,
backgroundColor: 'blue'
height: 40,
}
然后我向它添加属性
someStyle.borderRadius: 15
此处流程抛出错误 无法将 15 分配给 someStyle.borderRadius 因为它在对象文字中丢失
如何禁用 someStyle
对象的流?我在 someStyle 上方尝试了 // @flow-disable
,但没有成功
此外,如果我们这样做 //@flow
是否必须为所有对象定义类型?在我的无状态函数中?
有几种方法可以解决这个问题:
选项 1:如果您的样式对象始终具有宽度、高度、背景颜色和可选的 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;