vue源码分析——认识flow

Flow是facebook出品的JS类型检查工具,他可以做类型检查,所谓的类型检查就是在编译期间今早发现由类型错误引起的bug,又不影响代码运行,使编写JS具有编写JAVA等强elixir语言相近的体验,所以vue使用flow做了静态检查。

Flow通常类型检查分成两种:

1.类型判断

2.类型注释

一、类型判断是通过变量的使用上下文来推断出变量类型,然后根据这些判断来检查类型(相对于在那写了个If),他不需要任何修改即可进行类型检查。

  例子:

  

/*@flow*/''

function aplit(str){

    return str.split('');

}

split(11);    //这个会报错因为函数split期待的参数是字符串,我们输入了数字

二、类型注释:在某种条件下添加类型注释可以更高明确的检查依据。

  例子:

  

/*@flow*/

function add(x:number,y:number):number{

    return x+y

}

add('hello',11);  //报错因为hello是字符串

 

常见的类型注释

数组:

  例子

/*@flow*/

var arr:Array<number> = [1,2,3]

arr.push('hello');    //报错

 

类和对象

  例子

/*@flow*/

class Bar{

    x:string;

    y:string | number;

    z:boolean;

  constructor(x:string,y:string|number){
    this.x = x;
    this.y = y;
    this.z = false
  }
}

var bar:Bar = new Bar('hellow',4)

var obj:{ a:string, b:number, c:Array<string>,d:Bar} = {
  
  a:'hello',
  b:11,
  c:['hello','world'],
  d:new Bar('hello',3);
}

Null:若想任意类型可以为null或者是undefined,那么如例子所示就行了

  例子

  

/*@flow*/

var foo:?string = null

如果想了解更多,那么可以访问flow官方文档。

 

  

 

posted on 2018-06-29 10:59  另一种失败 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/qiaohong/p/9242363.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值