vue系列--- 认识Flow

最近工作清闲,静下心来有必要温故而知新,每次温故都有不同的见解,收获。

打开VUE源码,我看到了一脸懵逼的代码,我竟到了这JS代码都看不明白的地步唉。

/* @flow */

export function isDef (v: any): boolean %checks {
  return v !== undefined && v !== null
}

上面代码里用到了flow的知识:Flow 是javascript代码的静态类型检查工具。

我对(v:any) :boolean %checks 这段一脸无知。查阅资料。

%check的含义如下 (https://flow.org/en/docs/types/functions/)

翻译出来的意思是:

简言之就是谓词函数,可自行百度。(关键词:flow 谓词函数)

那 (v: any): boolean呢?

我们常用下面这种弱类形式写代码,请见。

function add(num1, num2) {
  return num1 + num2;
}

var result = add(1, '2');
console.log(result); // 输出:12

如果我们想对参数或者返回值做强制检查,如果不是期望的值就抛出异常。(当然,这一需求手动写也可以实现,但flow有了它后,方便多了。)

// @flow

function add(num1:number, num2:number) :number {
  return num1 + num2;
}

var result = add(1, 2); 

如上代码,num1:number 和 num2:number 的含义是:num1 和 num2 传递的参数都为数字类型的,:number {} 中的 :number的含义是:希望返回结果也是数字类型。

如果对于flow想更深入,更全面的学习。(个人觉得没必要,知道有这玩意儿就行了,毕竟实际开发中用的极少)。那就自行百度吧。

猜你喜欢

转载自blog.csdn.net/u012174809/article/details/123270187
今日推荐