javascript - "JQuery Interface file"for Flow(来自 Facebook 的 JavaScript 静态类型检查器)?

标签 javascript jquery facebook typechecking flowtype

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 库做过这个吗? (我使用 jQuery 1.9)

最佳答案

这是我的接口(interface)文件,我喜欢在名为“flow_lib”的文件夹中调用 jQuery.js。这个文件夹可以在任何地方。

这是 jQuery.js 包含的接口(interface)声明代码:

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

关于javascript - "JQuery Interface file"for Flow(来自 Facebook 的 JavaScript 静态类型检查器)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28296090/

相关文章:

javascript - Angularjs ng-repeat 使用键作为对象的属性名称

javascript - 如何使用 Mongoose 从数组中删除对象

Javascript参数化字符串: replace(RegExp,函数)意外分组/匹配

jquery - 将 CSS3 转换和动画与 jQuery addClass/removeClass 结合使用的最佳方法是什么?

Facebook 分享和点赞按钮显示相同的计数 - 这是不对的

java - 使用 RestFB api 发布到 Facebook 页面墙

javascript - Redis 队列将列表中的项目存储为 [object Object]

javascript - 无法在 Angular 中插入 url 参数

JQuery Mobile - 内联显示 HTML 表单

ios - 如何在iOS App中完全注销Facebook SDK Auth