TL; DR 如何告知flow
从未使用@flow
声明的导入模块导入类型定义?
流接缝能够从不使用流语法的文件中派生类型(参见示例)。
if(Math.random() < 0.5) {
var y = "hello";
} else {
var y = 2;
}
var i = y;
if(Math.random() < 0.5) {
- var y = "hello";
+ var y: number | string = "hello";
} else {
- var y = 2;
+ var y: number | string = 2;
}
-var i = y;
+var i: number | string = y;
它还能够使用flow get-importers
列出特定文件中的所有导入。工具接缝在那里,但我无法弄清楚如何自动告诉flow
从未使用@flow
声明的导入中获取类型定义。
我希望它遍历导入链,计算类型并在标有@flow
的文件中使用它们。我不希望它的类型检查代码没有用@flow
标记,只检索类型。
答案 0 :(得分:2)
我将你的问题改为我认为你的意思。
如何为Flow不知道的文件创建类型定义?
有两件事:
node_modules
内没有第三方lib),那么您可以在其旁边创建一个记录其出口的*.js.flow
文件。node_modules
内的第三方库等),那么您可以在flow-typed/name-of-library.js
对于.js.flow
个文件,您可以编写如下定义:
// @flow
declare module.exports: { ... }
对于libdef文件,您可以编写如下定义:
declare module "my-third-party-library" {
declare module.exports: { ... }
}
希望能回答你的问题