javascript的静态类型检查器
安装
yarn add flow-bin --dev
使用
//@flowfunction sum (a: number, b: number) { return a + b}console.log(sum(100, 100));console.log(sum('100', '100')); //报错
注释标记
1.//@flow
2./** * * @flow */
类型注解 :a: number, b: number ,a和b都是number类型
yarn flow init 初始化,在根目录创建一个.flowconfig文件
yarn flow 启动flow服务
yarn flow stop 停止服务
移除类型注解
1.安装flow-remove-types作为依赖库
yarn add flow-remove-types --dev
yarn flow-remove-types . -d dist
dist目录中生成文件,执行它
2.安装:yarn add @babel/core @babel/cli @babel/preset-flow --dev
在根目录下添加.babelrc文件,
{"presets":["@babel/preset-flow"]}
yarn babel . -d dist
基本类型
const a: string='sss'
const b:number = 123
const c:boolean = true
const d: null = null
const e: void = undefined
const f: symbol = Symbol()
数组类型
const arr1:Array<number> = [1,2,3]
const arr2: number[] =[4,5,6,'3']
const foo1: [string,number] = ['s',3]
对象类型
const obj1: {foo:string, bar:number} = {foo:'string',bar:100}
const obj2: {foo?:string, bar:number} = {bar:100}
const obj3: {[string]:string} = {}
obj3.key1 = 'value1'
obj3.key2 = 'value2'
特殊类型
const a1: 'foo' = 'foo'
const type:'success'|'warning'|'danger' = 'warning'
const b1: string | number = 2
type StringOrNumber = string|number
const b2:StringOrNumber = 5
问号代表可以是null或者undefined, 函数没有声明返回值, 即返回值也可以是undefined
const gender:?number = undefined
mixed/any类型,接收任意类型的数据(string,number,boolean...)
any是弱类型,不安全,尽量不要使用
mixed是强类型