将流添加到现有项目

时间:2015-12-01 21:10:28

标签: flowtype

Flowtype添加到现有的大型项目是否可行?

我将.js添加到单个flow check文件中,然后运行.flowconfig并突出显示大量函数调用全局定义的库,因为它不知道是什么他们是。所以我将[ignore] node_modules/ bower_components/ typings/ [include] twig/ [libs] bower_components/timezone-js/src/date.js bower_components/jquery/dist/jquery.js bower_components/jquery-migrate/jquery-migrate.js bower_components/jquery-ui/jquery-ui.js bower_components/jqueryui-touch-punch/jquery.ui.touch-punch.js bower_components/jquery-cookie/jquery.cookie.js bower_components/jquery.expander/jquery.expander.js bower_components/jquery.transit/jquery.transit.js www/js/select2.js bower_components/fancybox/source/jquery.fancybox.pack.js bower_components/lodash/lodash.js bower_components/underscore.string/lib/underscore.string.js bower_components/json2/json2.js bower_components/jquery-validation/dist/jquery.validate.js bower_components/jquery-file-upload/js/jquery.iframe-transport.js bower_components/jquery-file-upload/js/jquery.fileupload.js bower_components/DataTables/media/js/jquery.dataTables.js bower_components/jquery.taps/jquery.taps.js bower_components/file-saver.js/FileSaver.js bower_components/react/react.js bower_components/react/react-dom.js bower_components/react/react-dom-server.js node_modules/babel-core/external-helpers.js node_modules/babel-core/browser-polyfill.js ... more libs ... [options] munge_underscores=true 文件更新为:

flow check

现在,当我运行{=Min(ABS(A1:D10))}时,它就会耗尽内存。

那么,那么呢?我的项目是否太大而无法使用流量?

2 个答案:

答案 0 :(得分:13)

.flowconfig中的路径是绝对路径上的正则表达式。因此,要忽略node_modulesbower_components下的所有内容,您可以使用以下内容:

[ignore]
.*/node_modules/.*
.*/bower_components/.*

[libs]部分包含Flow declarations (接口文件)的路径,您可以在其中定义应用中全局变量的类型。您可以将其指向一个保存所有接口文件的目录:

[libs]
.*/lib/interfaces/.*

例如,对于jQuery,您可以使用以下声明:

declare module "jQuery" {
  declare function $(element: any): any;
}

请注意,我们使用了any类型,它有效地关闭了此参数或返回类型的类型检查。

另请参阅文档中的third-party integrations部分。

答案 1 :(得分:2)

要扩展Martin的答案,因为MPI_Waitany类型的语法有点难以追踪,在许多情况下any是一个全能的,所以你不必声明每个属性在一个模块中(例如declare function exports(args: any): any;_.all等等,用于下划线)。但它并不适用于所有情况。

以下是我用过半工作的示例界面文件的片段:

_.each

有关更详细的界面文件示例,您可以看到facebook/flow's interface files look like on github