eslint - flowtype 将单个包导入标记为未找到

标签 eslint flowtype

我正在尝试开始使用 Flowtype,但在导入子包时,例如

import isArray from 'lodash/isArray';

我的 eslint 提示找不到所需的模块。

我已经使用流程类型安装来安装所有可以找到的库定义。

知道如何解决这个问题吗?

谢谢!

最佳答案

Flow 将 lodash/isArray 视为它自己的模块,因此需要告知该模块的导出是什么。

修改 lodash libdef 以导出 lodash/isArray

你可以这样做(我提取了 libdef 的一个子集并向你展示了需要更改的内容)

declare module 'lodash/isArray' {
  declare function isArray(value: any): bool;

  declare module.exports: typeof isArray
}

declare module 'lodash' {
  declare class Lodash {
    isArray: $Exports<'lodash/isArray'>
  }

  declare var exports: Lodash;
}

如果您有任何疑问,请告诉我。

如果人们按照您的方式加载 lodash 模块是正常的,则应该更新整个 libdef 以支持此用例。

关于eslint - flowtype 将单个包导入标记为未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43279745/

相关文章:

typescript - 模拟类方法的 jest.fn() 自动类型

javascript - 是否可以将流类型包装在不可变容器中?

flowtype - Canvas 元素的正确类型

javascript - 跨平台 ESLint 命令以递归方式在当前目录上运行?

reactjs - 在 Typescript 中查找解构参数对象中未使用的属性

javascript - 将流类型包含到 JSDoc 中

flowtype - 应该如何构建不相交的联合包装器才能使细化发挥作用?

javascript - 如何在flowjs中指定一个可以未定义的参数

javascript - 导出图像时出现 eslint 错误 - 首选默认导出

javascript - eslint:错误解析错误:关键字 'const'被保留