关于 Flow

Posted Just 33

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 Flow相关的知识,希望对你有一定的参考价值。

Flow 一个 javascript 静态类型检测器

创建 .flowconfig 或者通过全局安装 flow,利用flow init 在项目的根目录 进行配置的初始化 (一般不需要进行额外的修改) 

默认检测 统计目录下的所有文件

[include] : 需要检测的目录

[ignore] : 不需要检测的目录

[lib] : null , [options] : null

[version] : flow 版本 

 

如果要flow 检测js文件 需要在函数头部 添加注解 // @flow 或者 /* @flow */

例如 : 

// @flow

function a(str:string){

  return str.length

}

a(null) 

Error: index.js:6
6: a(null);
^^^^ null. This type is incompatible with the expected param type of
2: function a(name: string) {
^^^^^^ string

 

flow:支持的类型:

原声的javascript类型 : string,boolean,number,void(undefined),null

拓展类型 :

any(所有类型都可以,相当于不检测),

mixed(动态数据类型),

Array<T> 来声明一个数组后(var arr:Array<string>),

Objects (let object:{a:number,b:string} = {a:1,b:‘string‘}),

callable:null,

Object:所有对象的超集(和any类似 ),

Class<T>(范型类)

 

JavaScript 既是弱类型语言又是动态类型语言,极其容易出错,也是它成为糟糕语言的一个重要原因。

由于前期成本很低,并且具有缓慢演进的能力,Flow 通过向 JavaScript 添加类型系统来解决这两个问题。

 

好处详见:  http://www.zcfy.cc/article/why-use-flow-1585.html

 

 

以上是关于关于 Flow的主要内容,如果未能解决你的问题,请参考以下文章

关于 Flow

关于Control flow

关于代码片段的时间复杂度

关于片段生命周期

关于js----------------分享前端开发常用代码片段

关于在各浏览器中插入音频文件的html代码片段