流无弱类型警告:具有默认值的弱类型的可选参数
Flow no-weak-types warning: optional argument of weak type with default value
有这个 Flow'ed 代码
export default (resource: string, init?: Object = {}) =>
我收到以下警告
warning Unexpected use of weak type "Object" flowtype/no-weak-types
问题是 init
参数完全是本机获取的第二个参数(参见 MDN),它是可选的,并且是一个可能具有 10 多个复杂属性的对象,所以我不' 想要指定其类型而不是泛型 "Object" 或 "any".
在我的情况下,避免此警告的正确方法是什么?
您看到的警告来自 ESLint,特别是 eslint-plugin-flowtype 插件,而不是来自 Flow 本身。
但是,它警告你一些有效的东西。 Object
是 Flow 中的不安全类型。它等同于 any
(它曾经有一些细微的差别,但现在不再有)。一般来说,明确说明属性可能是值得的,即使它们很复杂,像这样:
type Init = {
someProp: string,
someOtherProp: number;
}
export default (resource: string, init?: Init = {}) => {}
(try)
你也可以考虑mixed
type,安全但使用不方便
如果您确定要接受 Object
或 any
的不安全行为,您可以 该行。
有这个 Flow'ed 代码
export default (resource: string, init?: Object = {}) =>
我收到以下警告
warning Unexpected use of weak type "Object" flowtype/no-weak-types
问题是 init
参数完全是本机获取的第二个参数(参见 MDN),它是可选的,并且是一个可能具有 10 多个复杂属性的对象,所以我不' 想要指定其类型而不是泛型 "Object" 或 "any".
在我的情况下,避免此警告的正确方法是什么?
您看到的警告来自 ESLint,特别是 eslint-plugin-flowtype 插件,而不是来自 Flow 本身。
但是,它警告你一些有效的东西。 Object
是 Flow 中的不安全类型。它等同于 any
(它曾经有一些细微的差别,但现在不再有)。一般来说,明确说明属性可能是值得的,即使它们很复杂,像这样:
type Init = {
someProp: string,
someOtherProp: number;
}
export default (resource: string, init?: Init = {}) => {}
(try)
你也可以考虑mixed
type,安全但使用不方便
如果您确定要接受 Object
或 any
的不安全行为,您可以