流无弱类型警告:具有默认值的弱类型的可选参数

时间:2019-12-02 16:43:36

标签: javascript eslint flowtype

具有此流程的代码

export default (resource: string, init?: Object = {}) =>

我收到警告

  

警告意外使用弱类型“对象”流类型/无弱类型

问题是init参数完全是本机的'fetch第二个参数(请参阅MDN),该参数是可选的,并且它是一个可能具有10多个复杂属性的对象,所以我不想要指定其类型,而不是通用的“对象”或“任何”。

在我的情况下,避免此警告的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

您看到的警告来自ESLint,特别是eslint-plugin-flowtype插件,而不是Flow本身。

但是,它警告您有效的东西。 Object在Flow中是不安全的类型。它等效于any(它曾经有一些细微的差别,但现在不再如此)。总的来说,可能值得用以下方式显式地阐明属性,即使它们很复杂:

type Init = {
  someProp: string,
  someOtherProp: number;
}

export default (resource: string, init?: Init = {}) => {}

try

您可能还想考虑使用mixed type,它安全但使用不方便。

如果您确定要接受Objectany的不安全行为,则可以turn off the ESLint rule用于该行。

相关问题