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 面向对象 命名空间
May 13 Javascript
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
Sep 02 Javascript
js取消单选按钮选中并判断对象是否为空
Nov 14 Javascript
jquery.gridrotator实现响应式图片展示画廊效果
Jun 23 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
Jul 01 Javascript
jQuery EasyUI ProgressBar进度条组件
Feb 28 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
Nov 10 Javascript
详解如何在React组件“外”使用父组件的Props
Jan 12 Javascript
bootstrap datepicker的基本使用教程
Jul 09 Javascript
Servlet返回的数据js解析2种方法
Dec 12 Javascript
如何在node环境实现“get数据解析”代码实例
Jul 03 Javascript
vue-cli3项目打包后自动化部署到服务器的方法
Sep 16 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检测用户是否用手机(Mobile)访问网站的类
2014/01/09 PHP
php简单截取字符串代码示例
2016/10/19 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
In Javascript Class, how to call the prototype method.(three method)
2007/01/09 Javascript
javascript+xml技术实现分页浏览
2008/07/27 Javascript
js png图片(有含有透明)在IE6中为什么不透明了
2010/02/07 Javascript
Highcharts 非常实用的Javascript统计图demo示例
2013/07/03 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
点击页面其它地方隐藏该div的两种思路
2013/11/18 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
2015/02/27 Javascript
JavaScript数组和对象的复制
2017/03/21 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
jQuery中将json数据显示到页面表格的方法
2018/05/27 jQuery
webpack dll打包重复问题优化的解决
2018/10/10 Javascript
使用JS获取页面上的所有标签
2018/10/18 Javascript
微信开发之微信jssdk录音功能开发示例
2018/10/22 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
[06:48]DOTA2-DPC中国联赛2月26日Recap集锦
2021/03/11 DOTA
python实现随机密码字典生成器示例
2014/04/09 Python
python创建和删除目录的方法
2015/04/29 Python
python集合用法实例分析
2015/05/30 Python
Python基础教程之异常详解
2019/01/10 Python
python脚本当作Linux中的服务启动实现方法
2019/06/28 Python
Django基础知识 web框架的本质详解
2019/07/18 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
详解用Python进行时间序列预测的7种方法
2020/03/13 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
详解CSS3中border-image的使用
2015/07/18 HTML / CSS
Farfetch台湾官网:奢侈品牌时尚购物平台
2019/06/17 全球购物
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
linux面试题参考答案(5)
2016/11/05 面试题
毕业生幼师求职自荐信
2013/10/01 职场文书
奉献家乡演讲稿
2014/09/13 职场文书
正风肃纪剖析材料范文
2014/10/10 职场文书
导游词格式
2015/02/13 职场文书