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 相关文章推荐
js 格式化时间日期函数小结
Mar 20 Javascript
jquery实现图片等比例缩放以及max-width在ie中不兼容解决
Mar 21 Javascript
js 日期比较相关天数代码
Apr 02 Javascript
老生常谈angularjs中的$state.go
Apr 24 Javascript
jQuery实现radio第一次点击选中第二次点击取消功能
May 15 jQuery
vue加载自定义的js文件方法
Mar 13 Javascript
vue filters的使用详解
Jun 11 Javascript
vuex页面刷新后数据丢失的方法
Jan 17 Javascript
JavaScript面向对象编程小游戏---贪吃蛇代码实例
May 15 Javascript
ES6 Generator函数的应用实例分析
Jun 26 Javascript
浅谈JavaScript中this的指向问题
Jul 28 Javascript
vue+iview分页组件的封装
Nov 17 Vue.js
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相关资料
2006/10/09 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
2016/12/29 PHP
解决出现SoapFault (looks like we got no XML document)的问题
2017/06/24 PHP
php微信公众号开发之微信企业付款给个人
2018/10/04 PHP
javascript json 新手入门文档
2009/12/03 Javascript
JQuery对id中含有特殊字符的转义处理示例
2013/09/06 Javascript
js中取得变量绝对值的方法
2015/01/03 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
超实用的JavaScript表单代码段
2016/02/26 Javascript
JavaScript表单焦点自动切换代码
2016/07/24 Javascript
使用jquery给新生的th绑定hover事件的实例
2017/02/10 Javascript
jQuery实现复制到粘贴板功能
2017/02/11 Javascript
Angular2入门教程之模块和组件详解
2017/05/28 Javascript
微信小程序template模板实例详解
2017/10/27 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
Vue快速实现通用表单验证的示例代码
2020/01/09 Javascript
JS中==、===你分清楚了吗
2020/03/04 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
2020/03/10 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
2020/07/20 Javascript
Vue全局使用less样式,组件使用全局样式文件中定义的变量操作
2020/10/21 Javascript
python 输出一个两行字符的变量
2009/02/05 Python
Python异常处理操作实例详解
2018/08/28 Python
python多项式拟合之np.polyfit 和 np.polyld详解
2020/02/18 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2020/02/29 Python
python爬虫如何解决图片验证码
2021/02/14 Python
css3中新增的样式使用示例附效果图
2014/08/19 HTML / CSS
英国奢侈品网站:MatchesFashion
2016/12/16 全球购物
澳大利亚婴儿喂养品牌:Cherub Baby
2018/11/01 全球购物
strstr()的简单实现
2013/09/26 面试题
小学校园广播稿集锦
2014/10/04 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
2015商场元旦促销活动策划方案
2014/12/09 职场文书
三好学生评语大全
2014/12/29 职场文书
结婚典礼致辞
2015/07/28 职场文书
Python中seaborn库之countplot的数据可视化使用
2021/06/11 Python
Python初学者必备的文件读写指南
2021/06/23 Python