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 相关文章推荐
html5 canvas js(数字时钟)实例代码
Dec 23 Javascript
针对初学者的jQuery入门指南
Aug 15 Javascript
javascript 判断两个日期之差的示例代码
Sep 05 Javascript
基于JavaScript实现轮播图代码
Jul 14 Javascript
获取JS中网页各种高宽与位置的方法总结
Jul 27 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
Aug 17 Javascript
angular 内存溢出的问题解决
Jul 12 Javascript
vue路由组件按需加载的几种方法小结
Jul 12 Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
Jan 06 Javascript
node实现mock-plugin中间件的方法
Dec 25 Javascript
微信小程序indexOf的替换方法(推荐)
Jan 14 Javascript
Vue文本模糊匹配功能如何实现
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登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
2016/02/15 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
2017/09/29 PHP
php正确输出json数据的实例讲解
2018/08/21 PHP
js身份证判断方法支持15位和18位
2014/03/18 Javascript
JavaScript基本数据类型及值类型和引用类型
2015/08/25 Javascript
jquery带有索引按钮且自动轮播切换特效代码分享
2015/09/15 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
2016/01/28 Javascript
JS基础随笔(菜鸟必看篇)
2016/07/13 Javascript
jquery实现焦点轮播效果
2017/02/23 Javascript
jquery+css实现下拉列表功能
2017/09/03 jQuery
vue将对象新增的属性添加到检测序列的方法
2018/02/24 Javascript
Vue中div contenteditable 的光标定位方法
2018/08/25 Javascript
解决element ui select下拉框不回显数据问题的解决
2019/02/20 Javascript
使用 Element UI Table 的 slot-scope方法
2019/10/10 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
[02:27]2018DOTA2亚洲邀请赛赛前采访-OpTic
2018/04/03 DOTA
Python中用sleep()方法操作时间的教程
2015/05/22 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
2016/07/02 Python
python爬取cnvd漏洞库信息的实例
2019/02/14 Python
numpy ndarray 取出满足特定条件的某些行实例
2019/12/05 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
Python 炫技操作之合并字典的七种方法
2020/04/10 Python
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
德国综合购物网站:OTTO
2018/11/13 全球购物
保加利亚服装和鞋类购物网站:Bibloo.bg
2020/11/08 全球购物
普师专业个人自荐信范文
2013/11/26 职场文书
化学实验员岗位职责
2013/12/28 职场文书
中专自我鉴定
2014/02/05 职场文书
保安队长职务说明书
2014/02/23 职场文书
对孩子的寄语
2014/04/09 职场文书
通知函格式范文
2015/04/27 职场文书
中秋节感想
2015/08/10 职场文书
2020年基层司法所建设情况调研报告
2019/11/30 职场文书
详解Python 3.10 中的新功能和变化
2021/04/28 Python
Python采集股票数据并制作可视化柱状图
2022/04/04 Python