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 相关文章推荐
Sample script that deletes a SQL Server database
Jun 16 Javascript
基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码(带平滑移动的效果)
May 24 Javascript
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
Feb 03 Javascript
8个实用的jQuery技巧
Mar 04 Javascript
jquery form表单序列化为对象的示例代码
Mar 05 Javascript
jquery模拟LCD 时钟的html文件源代码
Jun 16 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
Oct 28 Javascript
基于Jquery和html5的7款个性化地图插件
Nov 17 Javascript
分享JavaScript监听全部Ajax请求事件的方法
Aug 28 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
Sep 05 Javascript
vue.extend实现alert模态框弹窗组件
Apr 28 Javascript
JavaScript This指向问题详解
Nov 25 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
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
php从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
2016/08/01 PHP
PHP defined()函数的使用图文详解
2019/07/20 PHP
JavaScript中将一个值转换为字符串的方法分析[译]
2012/09/21 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
js星星评分效果
2014/07/24 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
JavaScript组件开发完整示例
2015/12/15 Javascript
ReactNative之FlatList的具体使用方法
2017/11/29 Javascript
vue.js实现标签页切换效果
2018/06/07 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
JS匿名函数内部this指向问题详析
2019/05/10 Javascript
100行代码实现vue表单校验功能(小白自编)
2019/11/19 Javascript
jquery实现图片放大镜效果
2020/12/23 jQuery
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
2021/01/05 Vue.js
[00:10]DOTA2 TI9勇士令状明日上线
2019/05/07 DOTA
Python标准库之sqlite3使用实例
2014/11/25 Python
pygame学习笔记(5):游戏精灵
2015/04/15 Python
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
Python获取CPU、内存使用率以及网络使用状态代码
2018/02/08 Python
使用python实现BLAST
2018/02/12 Python
基于OpenCV python3实现证件照换背景的方法
2019/03/22 Python
Python通过kerberos安全认证操作kafka方式
2020/06/06 Python
世界上最大的巴士旅游观光公司:Big Bus Tours
2016/10/20 全球购物
澳洲的服装老品牌:SABA
2018/02/06 全球购物
医学护理毕业生自荐信
2013/11/07 职场文书
经典公益广告词
2014/03/13 职场文书
市场营销工作计划书
2014/05/06 职场文书
学校师德承诺书
2014/05/23 职场文书
党员先进性教育整改措施
2014/09/18 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
2015年企业团支部工作总结
2015/05/21 职场文书
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python
Nginx配置使用详解
2022/07/07 Servers