JavaScript静态类型检查工具FLOW简介


Posted in Javascript onJanuary 06, 2015

Flow是Facebook出品的,针对JavaScript的静态类型检查工具。其代码托管在github之上,并遵守BSD开源协议。

关于Flow

它可以帮助我们捕获JavaScript开发中的常见错误,而不需要额外地修改你原有的代码,比如静态类型转换,空值引用等问题。
同时,Flow为JavaScript添加了静态类型的语法标识,这样开发者便可以明确代码中的类型,让其自动地被Flow所维护。
目前,Flow具有以下两特性:

1. Flow的类型检查具有可选性

除非你明确告诉Flow需要对某些文件进行类型检查,否则它是不会检查你不需要检查文件的。这就是说,你可以慢慢地将你的代码库转到Flow之上,继续收获其持续增长的价值。
比如你选择了一个文件进行检查,Flow会自动地对你代码的类型检查,并查出你的代码中的错误。不过,如果你的代码分得很细并存在于不同的文件之中,这种做法显得太麻烦。但有些时候,你选择检查一些很大型的库,Flow可能会不是那么准确。在这种情况下,我们可以手动地采用“类型注解”或者切换到“弱模式”下限制其类型引用来解决问题。

2. Flow的类型检查是在线的

在对代码库进行检查时,Flow会对其做一个初步的分析,然后会在后台对后续变化做持续的监测,类型检查,以及依赖检查。对开发者来说,意味着不需要花大把的时间在编译之上。当批量保存文件的时候,会自动触发Flow的类型检查,会并把结果持久化,以备再用。

使用与期望

Flow是一个由Facebook出品的新新库,大量的特性还在开发过程之中。其长远的目标是:想让JavaScript
的开发体验变得更好,而不用去妥协语言中最本质的东西。我们想要开发者拥有强大的工具,去明白如何去维护他们的代码,更方便安全地复用与优化他们的代码。在早期选择开源,也是希望能给Flow一个机会,快速地在所有开发者面前成长起来。

接下来,我会讲到一些例子,帮助大家快速了解Flow如何工作,以及如何通过Flow让我们更好的工作。

Javascript 相关文章推荐
JavaScript isArray()函数判断对象类型的种种方法
Oct 11 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
Apr 20 Javascript
jQuery源码解读之addClass()方法分析
Feb 20 Javascript
JQuery动态添加和删除表格行的方法
Mar 09 Javascript
基于Node.js的JavaScript项目构建工具gulp的使用教程
May 20 Javascript
将html页面保存成图片,图片写入pdf的实现方法(推荐)
Sep 17 Javascript
jQuery滚动条美化插件nicescroll简单用法示例
Apr 18 jQuery
Vue数据双向绑定原理及简单实现方法
May 18 Javascript
React注册倒计时功能的实现
Sep 06 Javascript
教你如何编写Vue.js的单元测试的方法
Oct 17 Javascript
js实现input密码框显示/隐藏功能
Sep 10 Javascript
简述vue-cli中chainWebpack的使用方法
Jul 30 Javascript
jQuery中filter()方法用法实例
Jan 06 #Javascript
JavaScript修改浏览器tab标题小技巧
Jan 06 #Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
Jan 06 #Javascript
jQuery中hasClass()方法用法实例
Jan 06 #Javascript
jQuery中last()方法用法实例
Jan 06 #Javascript
jQuery中first()方法用法实例
Jan 06 #Javascript
jquery解决客户端跨域访问问题
Jan 06 #Javascript
You might like
php初学者写及时补给skype用户充话费的小程序
2008/11/02 PHP
利用php+mysql来做一个功能强大的在线计算器
2010/10/12 PHP
PHP 登录完成后如何跳转上一访问页面
2014/01/14 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
使用ThinkPHP的自动完成实现无限级分类实例详解
2016/09/02 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
2017/10/22 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
PHP面向对象程序设计之对象的遍历操作示例
2019/06/12 PHP
Laravel5.4简单实现app接口Api Token认证方法
2019/08/29 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
jquery实现表格奇数偶数行不同样式(有图为证及实现代码)
2013/01/23 Javascript
jQuery实现炫酷的鼠标轨迹特效
2015/02/01 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
JavaScript实现数组降维详解
2017/01/05 Javascript
Bootstrap 3浏览器兼容性问题及解决方案
2017/04/11 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
2020/07/30 Javascript
深入理解Python中的super()方法
2017/11/20 Python
python打包压缩、读取指定目录下的指定类型文件
2018/04/12 Python
python爬取酷狗音乐排行榜
2019/02/20 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
python logging 重复写日志问题解决办法详解
2020/08/04 Python
Python使用socket_TCP实现小文件下载功能
2020/10/09 Python
使用canvas生成含有微信头像的邀请海报没有微信头像问题
2019/10/29 HTML / CSS
单位门卫岗位职责
2013/12/20 职场文书
秋季开学典礼主持词
2014/03/19 职场文书
医药销售自荐书
2014/05/29 职场文书
煤矿开采专业求职信
2014/07/08 职场文书
无财产无子女离婚协议书范文
2014/09/14 职场文书
教师政风行风评议心得体会
2014/10/21 职场文书
2014年体育教师工作总结
2014/12/03 职场文书
2015年车间安全管理工作总结
2015/05/13 职场文书
原告离婚代理词
2015/05/23 职场文书