"JQuery Interface file" for Flow(来自 Facebook 的 JavaScript 的静态类型检查器)?
"JQuery Interface file" for Flow (Static Type Checker for JavaScript from Facebook)?
2014 年 11 月,也就是 3 个月前,Facebook 开源了一个新的命令行工具,一个名为“Flow”的静态类型检查器。现在我想 运行 它在我的一些旧的、现有的 javascript 文件上。这些包含对 jQuery 库的引用。
我的 JS 文件在编写时并未考虑静态类型检查。
但是,在文件顶部包含 /* @flow */ 之后,当我 运行 使用此命令流动时:
flow myfile.js
结果:
/var/www/myfilejs:70:12,17: identifier jQuery
Unknown global name
Found 1 error
据我了解,将jQuery包含到Flow的类型检查过程中的方法是create an "interface file"。
有人为 jQuery 图书馆做过这件事吗? (我用的是jQuery1.9)
这是我喜欢在我称为"flow_lib"的文件夹中称为jQuery.js
的接口文件。这个文件夹可以在任何地方。
这是 jQuery.js
包含的接口声明代码:
declare module "jQuery" {
declare function $(obj: any): any;
}
var $ = require('$').$;
在您的 .flowconfig
中,包含这样的文件夹:
[ignore]
[include]
[libs]
<path-to-folder>/flow_lib
[options]
注意:此方法不检查实际的 jQuery 规范。这只是一个快速修复,可以消除代码中与 $
相关的流程警告和错误。如果您想更具体,请使用类似的内容:https://github.com/solnetdigital/flow-interfaces-jquery/blob/master/interfaces/jquery.js
如果您想要实际的 jQuery 流接口定义,可以查看 https://github.com/marudor/flowInterfaces 中提供的定义。
安装:
npm install --save-dev iflow-jquery
或
yarn add --dev iflow-jquery
然后将以下内容添加到您的 .flowconfig
文件中:
[libs]
node_modules/iflow-jquery/index.js.flow
之后,flow 将推断您提供给 jquery 函数的参数类型,并在您传递错误类型时发出警告。
2014 年 11 月,也就是 3 个月前,Facebook 开源了一个新的命令行工具,一个名为“Flow”的静态类型检查器。现在我想 运行 它在我的一些旧的、现有的 javascript 文件上。这些包含对 jQuery 库的引用。
我的 JS 文件在编写时并未考虑静态类型检查。 但是,在文件顶部包含 /* @flow */ 之后,当我 运行 使用此命令流动时:
flow myfile.js
结果:
/var/www/myfilejs:70:12,17: identifier jQuery
Unknown global name
Found 1 error
据我了解,将jQuery包含到Flow的类型检查过程中的方法是create an "interface file"。
有人为 jQuery 图书馆做过这件事吗? (我用的是jQuery1.9)
这是我喜欢在我称为"flow_lib"的文件夹中称为jQuery.js
的接口文件。这个文件夹可以在任何地方。
这是 jQuery.js
包含的接口声明代码:
declare module "jQuery" {
declare function $(obj: any): any;
}
var $ = require('$').$;
在您的 .flowconfig
中,包含这样的文件夹:
[ignore]
[include]
[libs]
<path-to-folder>/flow_lib
[options]
注意:此方法不检查实际的 jQuery 规范。这只是一个快速修复,可以消除代码中与 $
相关的流程警告和错误。如果您想更具体,请使用类似的内容:https://github.com/solnetdigital/flow-interfaces-jquery/blob/master/interfaces/jquery.js
如果您想要实际的 jQuery 流接口定义,可以查看 https://github.com/marudor/flowInterfaces 中提供的定义。
安装:
npm install --save-dev iflow-jquery
或
yarn add --dev iflow-jquery
然后将以下内容添加到您的 .flowconfig
文件中:
[libs]
node_modules/iflow-jquery/index.js.flow
之后,flow 将推断您提供给 jquery 函数的参数类型,并在您传递错误类型时发出警告。