将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))}
时,它就会耗尽内存。
那么,那么呢?我的项目是否太大而无法使用流量?
答案 0 :(得分:13)
.flowconfig
中的路径是绝对路径上的正则表达式。因此,要忽略node_modules
和bower_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。