flow

最近在一篇文章上看见了关于Flow的介绍,觉得它很不错,虽然之前在项目中使用Typescript已经很顺手了,再使用Flow感觉有点累赘了,但多学点总是没错的。

javascript是一门弱类型语言,所谓,弱类型语言,就是一个变更既可以被赋值 字符串,数字,又可被赋值 对象,数组,函数等,弱类型的好处很多,但缺点也不少如:
跳过了编译过程, 导致代码中的错误只能在运行时才能显现出来
由于变量的类型灵活多变, 导致代码可读性降低, 不容易排错
由于变量形式灵活多变, 导致IDE的智能提示不够准确

function square(n) {
  return n * n;
}
square("oops"); // NaN报错

为了处理这种问题,一些类型检测工具类型的框架就诞生了,比如:ts和flow
它们让项目可以通过类型检查器来限定参数的类型,可以让我们用类似java的强类型风格, 编写js语言

vue: 由于ts诞生的晚,vue2如果适配ts,就要完全重写,代价太大,被迫使用flow。但vue 3.0 是完全重写,所以本身也抛弃了 flow,直接使用了 TypeScript。

react:因为同是一家的产品,所以它目前还在坚挺自家的flow。当然,有一个八卦传闻是,据说在Flow出现之前ts团队去facebook推销过,但推销失败,facebook还是决定自己搞一套

angular: 为什么 Angular 就愿意用 ts 呢?因为 Angular 本来就是一帮搞 Java 的人弄出来的,而且只是 Google 的一个子项目,Google在公司层面根本不关心它用什么语言。而对 Facebook而React/RN/Babel/Flow/Nuclide是整个公司 基础层面的东西,要么依赖规范,要么就得自己有控制权。

使用方法
https://segmentfault.com/a/1190000017778886

posted @   丁少华  阅读(65)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示