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 相关文章推荐
JQuery 中几个类选择器的简单使用介绍
Mar 14 Javascript
深入分析jquery解析json数据
Dec 09 Javascript
JS解析XML实例分析
Jan 30 Javascript
Jquery对select的增、删、改、查操作
Feb 06 Javascript
js实现对ajax请求面向对象的封装
Jan 08 Javascript
jQuery文字提示与图片提示效果实现方法
Jul 04 Javascript
基于Phantomjs生成PDF的实现方法
Nov 07 Javascript
利用JS实现页面删除并重新排序功能
Dec 09 Javascript
bootstrap配合Masonry插件实现瀑布式布局
Jan 18 Javascript
JavaScript实现shuffle数组洗牌操作示例
Jan 03 Javascript
Vue+Koa2 打包后进行线上部署的教程详解
Jul 31 Javascript
Vue中避免滥用this去读取data中数据
Mar 02 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防止网站被攻击的应急代码
2015/10/21 PHP
Ext 今日学习总结
2010/09/19 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
Bootstrap页面布局基础知识全面解析
2016/06/13 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
2016/11/10 Javascript
JS基于正则表达式实现的密码强度验证功能示例
2017/09/21 Javascript
基于Bootstrap实现城市三级联动
2017/11/23 Javascript
vue axios数据请求get、post方法及实例详解
2018/09/11 Javascript
egg.js的基本使用和调用数据库的方法示例
2019/05/18 Javascript
微信小程序中插入激励视频广告并获取收益(实例代码)
2019/12/06 Javascript
[03:38]2014DOTA2西雅图国际邀请赛 VG战队巡礼
2014/07/07 DOTA
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
[11:42]2018DOTA2国际邀请赛寻真——OG卷土重来
2018/08/17 DOTA
跟老齐学Python之Import 模块
2014/10/13 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
2018/05/24 Python
tensorflow实现简单的卷积神经网络
2018/05/24 Python
对python cv2批量灰度图片并保存的实例讲解
2018/11/09 Python
python爬取网易云音乐评论
2018/11/16 Python
python异步存储数据详解
2019/03/19 Python
Python流行ORM框架sqlalchemy安装与使用教程
2019/06/04 Python
pandas 空数据处理方法详解
2019/11/02 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
基于python实现上传文件到OSS代码实例
2020/05/09 Python
您的时尚,您的生活方式:DTLR Villa
2019/12/25 全球购物
英文自荐信
2013/12/15 职场文书
医院门卫岗位职责
2013/12/30 职场文书
对教师的评语
2014/04/28 职场文书
实习推荐信
2014/05/10 职场文书
安全施工责任书
2014/08/25 职场文书
党员群众路线学习心得体会
2014/11/04 职场文书
2014年终工作总结范本
2014/12/15 职场文书
学生逃课万能检讨书2000字
2015/02/17 职场文书
2015年汽车销售工作总结
2015/04/07 职场文书
夏洛特的网观后感
2015/06/15 职场文书
阿里云k8s服务升级时502错误 springboot项目应用
2022/04/09 Servers
Python通过loop.run_in_executor执行同步代码 同步变为异步
2022/04/11 Python