JavaScript静态类型检查工具FLOW简介_基础知识

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让我们更好的工作。

时间: 2024-09-23 11:52:43

JavaScript静态类型检查工具FLOW简介_基础知识的相关文章

JavaScript中join()方法的使用简介_基础知识

 JavaScript数组join()方法加入数组的所有元素为一个字符串.语法 array.join(separator); 下面是参数的详细信息:     separator : 指定字符串分开数组的每个元素.如果省略,则数组元素用逗号分隔. 返回值: 返回接合所有数组元素之后的字符串.例子: <html> <head> <title>JavaScript Array join Method</title> </head> <body&g

JavaScript中的parse()方法使用简介_基础知识

 Javascript Date.parse() 方法接受一个日期字符串,并返回自1970年1月1日午夜的毫秒数.语法 Date.parse(datestring) 注:括号内的数据是可选的 下面是参数的详细信息:     datestring : 一个字符串,表示日期 返回值: 自1970年1月1日午夜的毫秒数.例子: <html> <head> <title>JavaScript parse Method</title> </head> &l

JavaScript中的toLocaleDateString()方法使用简介_基础知识

 JavaScript Date.toLocaleDateString()方法的日期转换为字符串,使用操作系统的语言环境的约定返回"日期"部分.语法 Date.toLocaleDateString() 下面是参数的详细信息:     NA 返回值: 返回使用操作系统的语言环境的约定的"日期"部分.例子: <html> <head> <title>JavaScript toLocaleDateString Method</ti

JavaScript中constructor()方法的使用简介_基础知识

 JavaScript Boolean.constructor()方法返回一个引用到创建实例的原型布尔函数.语法 boolean.constructor() 返回值:     NA 下面是参数的详细信息: 返回创建此对象的实例.例子: <html> <head> <title>JavaScript constructor() Method</title> </head> <body> <script type="tex

Flow之一个新的Javascript静态类型检查器_javascript技巧

今天我们兴奋的发布了 Flow 的尝鲜版,一个新的Javascript静态类型检查器.Flow为Javascript添加了静态类型检查,以提高开发效率和代码质量.更明确的说,静态类型检查提供的好处像早期错误检查,帮助你发现一些只有在运行时才能发现的错误,以及代码智能感知,它会帮助代码维护,查找,重构和优化. 我们设计Flow的所有功能构建在现有Javascript规范之上.因为Flow主动地在后台工作,所以额外的编译开销很小.Flow并不要求开发者如何编写代码 -- 她用一套复杂的算法分析你熟悉

Javascript核心读书有感之类型、值和变量_基础知识

计算机程序的运行需要对值(value)比如数字3.14或者文本"hello world"进行操作,在编程语言中,能够表示并操作的值的类型叫做数据类型(type),编程语言最基本的特性就是主持多种数据类型.当程序需要将值保持起来以备将来使用时,便将其赋值给(将值"保存"到)一个变量(variable).变量是一个值的符号名称,可以通过名称获得对值的引用.变量的工作机制是编程语言的令一个基本特性.本章将参照上节帮助理解本章内容,后续将更深入的讲解. javascript

简介JavaScript中的push()方法的使用_基础知识

 JavaScript的数组push()方法追加在最后该数组的给定元素(多个),并返回新的数组的长度.语法 array.push(element1, ..., elementN); 下面是参数的详细信息:     element1, ..., elementN: 元素添加到数组的末尾. 返回值: 返回新数组的长度.例子: <html> <head> <title>JavaScript Array push Method</title> </head&g

简介JavaScript中的setTime()方法的使用_基础知识

 javascript Date.setTime()方法设置Date对象通过毫秒数自1970年1月1日00:00:00 UTC表示的时间.语法 Date.setTime(timeValue) 注:括号内外的数据是可选的 下面是参数的详细信息:     timeValue : 表示自1970年1月00:00:00 UTC起的一个整数(毫秒数). 返回值: NA 例子: <html> <head> <title>JavaScript setTime Method</t

简介JavaScript中的setHours()方法的使用_基础知识

 javascript Date.setHours()方法按照本地时间设置小时在指定的日期.语法 Date.setHours(hoursValue[, minutesValue[, secondsValue[, msValue]]]) 注:括号内的参数是可选的 下面是参数的详细信息:     hoursValue : 0到23之间的整数,代表小时     minutesValue :0到59之间的整数,代表分钟     secondsValue : 0到59之间的整数,代表秒.如果指定secon