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常见表单应用技巧
Jan 09 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
May 17 Javascript
Javascript排序算法之计数排序的实例
Apr 05 Javascript
jQuery实现的多选框多级联动插件
May 02 Javascript
封装好的一个万能检测表单的方法
Jan 21 Javascript
javascript中数组和字符串的方法对比
Jul 20 Javascript
浅谈JS函数定义方式的区别
Oct 30 Javascript
几种响应式文字详解
May 19 Javascript
jQuery简单绑定单个事件的方法示例
Jun 10 jQuery
Vue封装一个简单轻量的上传文件组件的示例
Mar 21 Javascript
详解如何构建Promise队列实现异步函数顺序执行
Oct 23 Javascript
使用vscode快速建立vue模板过程详解
Oct 10 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
什么是短波收听SWL
2021/03/01 无线电
php的数组与字符串的转换函数整理汇总
2013/07/18 PHP
PHP字符串的连接的简单实例
2013/12/30 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
PHP实现倒计时功能
2020/11/16 PHP
一个javascript图片阅览组件
2010/11/09 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
盘点javascript 正则表达式中 中括号的【坑】
2016/03/16 Javascript
jquery easyui datagrid实现增加,修改,删除方法总结
2016/05/25 Javascript
Angularjs 实现移动端在线测评效果(推荐)
2017/04/05 Javascript
layui实现动态和静态分页
2018/04/28 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
2018/05/16 jQuery
原生JavaScript实现刮刮乐
2020/09/29 Javascript
[15:35]教你分分钟做大人:天怒法师
2014/10/30 DOTA
[01:32]DOTA2 2015国际邀请赛中国区预选赛第四日战报
2015/05/29 DOTA
python之线程通过信号pyqtSignal刷新ui的方法
2019/01/11 Python
Python基础之条件控制操作示例【if语句】
2019/03/23 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
python数据处理之如何选取csv文件中某几行的数据
2019/09/02 Python
python 多维高斯分布数据生成方式
2019/12/09 Python
Python连接SQLite数据库并进行增册改查操作方法详解
2020/02/18 Python
python numpy生成等差数列、等比数列的实例
2020/02/25 Python
django中related_name的用法说明
2020/05/20 Python
如何理解Python中的变量
2020/06/01 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
html5中去掉input type date默认样式的方法
2018/09/06 HTML / CSS
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
英国PC组件和在线电脑商店:SCAN
2019/04/18 全球购物
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
介绍一下Python下range()函数的用法
2013/11/07 面试题
汇源肾宝广告词
2014/03/20 职场文书
员工三分钟演讲稿
2014/08/19 职场文书
公司财务会计主管应聘求职信
2014/09/26 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
公司总经理岗位职责
2015/04/01 职场文书