Flow 中的可选对象属性
Optional object properties in Flow
流量版本:v0.114.0
type Arg = Array<{
someProp: string,
maybeOptional?: string
}>
const someFunc = (arg: Arg) => {
return arg
}
type OtherArg = Array<{
someProp: string,
maybeOptional: string
}>
const otherFunc = (otherArg: OtherArg) => {
return someFunc(otherArg)
}
预期行为
提供可选字段时不应引发错误。
用例:
可选择执行某些功能的通用组件 - 我们始终期望具有该功能的通用组件的特定实现
实际行为
无法调用 someFunc
并将 otherArg
绑定到 arg
,因为字符串 [1] 与数组的 属性 maybeOptional
中未定义的 [2] 不兼容元素.
已在 Flow 存储库的问题中回答:
I recommend to always use at least $ReadOnlyArray instead of Array.
https://github.com/facebook/flow/issues/8238#issuecomment-566583654
流量版本:v0.114.0
type Arg = Array<{
someProp: string,
maybeOptional?: string
}>
const someFunc = (arg: Arg) => {
return arg
}
type OtherArg = Array<{
someProp: string,
maybeOptional: string
}>
const otherFunc = (otherArg: OtherArg) => {
return someFunc(otherArg)
}
预期行为
提供可选字段时不应引发错误。 用例: 可选择执行某些功能的通用组件 - 我们始终期望具有该功能的通用组件的特定实现
实际行为
无法调用 someFunc
并将 otherArg
绑定到 arg
,因为字符串 [1] 与数组的 属性 maybeOptional
中未定义的 [2] 不兼容元素.
已在 Flow 存储库的问题中回答:
I recommend to always use at least $ReadOnlyArray instead of Array.
https://github.com/facebook/flow/issues/8238#issuecomment-566583654