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 Base64编码和解码,实现URL参数传递。
Sep 18 Javascript
捕获关闭窗口的脚本
Jan 10 Javascript
js处理自己不能定义二维数组的方法详解
Mar 03 Javascript
php结合imgareaselect实现图片裁剪
Jul 05 Javascript
js实现网页抽奖实例
Aug 05 Javascript
JavaScript实现下拉菜单的显示和隐藏
Jan 05 Javascript
BootStrap的JS插件之轮播效果案例详解
May 16 Javascript
jQuery过滤特殊字符及JS字符串转为数字
May 26 Javascript
2种在vue项目中使用百度地图的简单方法
Sep 28 Javascript
js核心基础之闭包的应用实例分析
May 11 Javascript
详解Vuex下Store的模块化拆分实践
Jul 31 Javascript
浅谈Vue使用Elementui修改默认的最快方法
Dec 05 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网站的几个实用要点
2014/12/30 PHP
PHP时间类完整实例(非常实用)
2015/12/25 PHP
解决JQeury显示内容没有边距内容紧挨着浏览器边线
2013/12/20 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
JS自定义对象实现Java中Map对象功能的方法
2015/01/20 Javascript
jQuery 回调函数(callback)的使用和基础
2015/02/26 Javascript
jquery实现页面关键词高亮显示的方法
2015/03/12 Javascript
js简单网速测试方法完整实例
2015/12/15 Javascript
Bootstrap Table服务器分页与在线编辑应用总结
2016/08/08 Javascript
Vue.js开发环境搭建
2016/11/10 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
js遍历json对象所有key及根据动态key获取值的方法(必看)
2017/03/09 Javascript
JS实现的添加弹出层并完成锁屏操作示例
2017/04/07 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
2017/05/18 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
VUE中v-model和v-for指令详解
2017/06/23 Javascript
vue实现与安卓、IOS交互的方法
2018/11/02 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
Angular处理未可知异常错误的方法详解
2021/01/17 Javascript
Python创建模块及模块导入的方法
2015/05/27 Python
关于python的bottle框架跨域请求报错问题的处理方法
2017/03/19 Python
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
2017/05/03 Python
opencv改变imshow窗口大小,窗口位置的方法
2018/04/02 Python
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
pytorch对可变长度序列的处理方法详解
2018/12/08 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
2018/12/13 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
2019/09/10 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
Python数据模型与Python对象模型的相关总结
2021/01/26 Python
园林毕业生自我鉴定范文
2013/12/29 职场文书
哈弗商学院毕业生求职信
2014/02/26 职场文书
奉献演讲稿范文
2014/05/21 职场文书
党员专题组织生活会发言材料
2014/10/17 职场文书
兼职安全员岗位职责
2015/02/15 职场文书
学校推普周活动总结
2015/05/07 职场文书
公司晚会主持词
2019/04/17 职场文书