流式 - 生成Libdef

ETF*_*fax 8 flowtype flow-typed

我正在使用Flow来帮助创作一个JS项目.如果我想提供一个libdef文件来补充它,我需要手动创建它,还是我能够执行一些我不知道的魔术命令,它会为我生成lib def?

$ flow-typed doyourmagic这样的东西会很好.

编辑:

找到了这个/sf/answers/2723460491/

哪个说:

有两件事:

如果文件归您所有(即不是node_modules中的第三方lib等),那么您可以在其旁边创建一个记录其导出的*.js.flow文件.

如果文件不归您所有(即node_modules中的第三方lib等),那么您可以在flow-typed/name-of-library.js中创建一个libdef文件.

对于.js.flow文件,您可以编写如下定义:

// @flow 
declare module.exports: { ... } 
Run Code Online (Sandbox Code Playgroud)

对于libdef文件,您可以编写如下定义:

declare module "my-third-party-library" {   declare module.exports: {... } }
Run Code Online (Sandbox Code Playgroud)

对于我的问题,我属于"由你拥有"阵营.

我想我很困惑:

  1. 我是怎么写这些文件的.
  2. 我如何/在何处发布这些文件以将其打包以供另一个项目引用.

另外,为什么我需要手动创建.js.flow文件?这不是神奇地产生的吗?也许这是未来的意图但尚未实施.

San*_*der 2

我找到了一个很好的指南,展示了如何将流程代码与编译后的代码打包在一起。所以:

  1. 您不必编写自己的 libdef,您可以使用整个流程源代码。如果您想要一个仅包含类型声明的定义,您可以查看flow gen-flow-files,尽管这仍然是实验性的并且可能会失败。
  2. 您可以将它们打包为*.js.flow,当您导入库时,流程检查器将自动选择它们。

  • 但是,如果您有捆绑包,该怎么办?我“汇总”代码以使 require 更快(1 个中型文件与 300 个小文件),但是将源文件复制为 *.js.flow 将不起作用,因为不再有相应的 *.js 文件,或者会吗? (3认同)