前言

what is flow?我想是的,很多人都没有接触过,的确,他是一个新的项目,是的facebook开发的东西,一般还是可以的,有必要去学习一下,在react还是比较重要的。

它做的一件事叫做静态检测。原因在于很多时候我们不明白弱类型到底执行正确吗?js就是一个很好的对比,因为他就是弱类型语言。

举例

function foo(x: number): number { return x + 10 } foo('hi')

x:number限制了x必须为number。扩号后面的number为返回的number,这样就可以检测出retrun 是否为一个数字。

实践

安装:

npm install  --save-dev flow-bin

安装在各个目录中,这样就可以轻松去示例话flow对象,本质上是一个对象多个配置。

初始化:

flow init

如果去执行这样的初始化,那么需要配置环境。这个时候,就会生成一个.flowconfig一样的东西。

这个就是配置文件,还是比较好用的。

文件配置:

.flowconfig中的确会去检测这些我们忽略的项目,和我们需要包含的项目。

但是我们依然需要去添加我们的标识符让flow能够检测到我们的代码类型。

例:

//@flow

/@flow/

以上两种方式都会去执行这些静态检测。

在很多编译检测中,有些不支持flow的检测工具,那么将需要:

flow check

来进行检测。

在vs code 中已经有了对js的检测,那么避免冲突我们需要加上:

"javascript.validate.enable": false

js 使用flow的更多相关文章

  1. nodejs stream 手册学习

    nodejs stream 手册 https://github.com/jabez128/stream-handbook 在node中,流可以帮助我们将事情的重点分为几份,因为使用流可以帮助我们将实现 ...

  2. [译] 关于 SPA,你需要掌握的 4 层 (2)

    此文已由作者张威授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 视图层 现在我们有了一个可执行且不依赖于框架的应用程序,React 已经准备投入使用. 视图层由 presen ...

  3. react-native —— 在Mac上搭建React Native Android开发环境

    需要:JDK,Android SDK,Node.js   1.安装JDK 去Java官网下载列表选择Mac OS X x64版   2.安装Android SDK 虽然现在谷歌推荐使用Android ...

  4. 【原】无脑操作:Markdown可以这样玩

    一.背景: Markdown是一种纯文本格式的标记语言.通过简单的标记语法,可以使普通文本内容具有一定的格式.因为语法简单明了.功能又比纯文本强大,所以很适合作为开发人员的书写工具.Markdown的 ...

  5. lint-staged 使用教程

    lint-staged 是一个在git暂存文件上运行linters的工具,当然如果你觉得每次修改一个文件就给所有文件执行一次lint检查不恶心的话,这个工具对你来说就没有什么意义了,请直接关闭即可. ...

  6. vue源码的入口(四)

    我们之前提到过 Vue.js 构建过程,在 web 应用下,我们来分析 Runtime + Compiler 构建出来的 Vue.js,它的入口是 src/platforms/web/entry-ru ...

  7. 遇到屏蔽selenium的站点如何突破

    访问某团外卖,查看下一页商家信息,正常浏览器可以打开, selenium打开就404, 分析请求参数,生成方法最后定位到 rohr*.js  而且有判断selenium特征 抓耳挠腮搞了半天没把这个j ...

  8. Node.js学习笔记 02 Implementing flow control

    What is flow control? 和其它语言一样,Node.js 在代码编写时,如何组织代码,如何写出clean code都是不可避免的难点. 同时,由于Node.js的天然特性(异步,事件 ...

  9. Asynchronous JS: Callbacks, Listeners, Control Flow Libs and Promises

    非常好的文章,讲javascript 的异步编程的. ------------------------------------------------------------------------- ...

  10. 用Flow编写更好的js代码

    关于本文: 原文地址 翻译地址 译者:野草 本文发表于前端早读课[第897期] 你是否经常在debug那些简单可避免的bug?可能你给函数传参的时候搞错了参数的顺序,或者本来应该传个Number类型的 ...

随机推荐

  1. 闭关修炼180天 -- 手写SpringMVC框架(迷你版)

    SpringMvc知识须知 MVC设计模式 Model(模型):模型包含业务模型和数据模型,数据模型⽤于封装数据,业务模型⽤于处理业 务. View(视图): 通常指的就是我们的 jsp 或者 htm ...

  2. [VueJsDev] 快速入门 - vscode 设置推荐

    [VueJsDev] 目录列表 https://www.cnblogs.com/pengchenggang/p/17037320.html vscode设置推荐 ::: details 目录 目录 v ...

  3. 剑桥英英在线词典 - 可以查单词 可数-不可数 - 英语 a few/few/a little/little

    There is _____ milk in a fridge. Let's go buy some. A. a few B. few C. a little D. little 解析:经典老知识点 ...

  4. Java | zuul 1.x 是如何实现请求转发的

    zuul 1.x 是如何实现请求转发的 文档写的再好,也不如源码写的好 源码地址: GitHub: https://github.com/Netflix/zuul Gitee: https://git ...

  5. Rust 标准库 Trait 指南

    部分内容来自 Rust 2021 年期刊 内容目录 引言 Trait 基础 自动 Trait 泛型 Trait 格式化 Trait 操作符 Trait 转换 Trait 错误处理 迭代器 Trait ...

  6. CentOS 7.9 环境下搭建k8s集群(一主两从)

    目录 一.硬件准备(虚拟主机) 二.环境准备 1.所有机器关闭防火墙 2.所有机器关闭selinux 3.所有机器关闭swap 4.所有机器上添加主机名与ip的对应关系 5.在所有主机上将桥接的ipv ...

  7. Spring Boot学习日记3

    学习了创建项目的几个重要核心步骤 1.创建一个新项目 2.选择spring initalizr , 可以看到默认就是去官网的快速构建工具那里实现 3.填写项目信息 4.选择初始化的组件(初学勾选 We ...

  8. opencv-python笔记(1)

    openCV笔记 图像 灰度图像 ​ 0代表纯黑色,255代表白色(类似亮度) 通道拆分 通过索引拆分: import cv2 lena=cv2.imread("lenacolor.png& ...

  9. Excel多列求平均值

    数据源如下所示 需求描述:现在需要根据水果名称和月份求出对应水果的平均单价 一.添加一列辅助列(=A2&B2) 二.Ctrl+A选择所有数据插入数据透视表,选择辅助列到行,客单价到值(值字段设 ...

  10. 使用vott对车牌位置进行标注

    1.软件安装 vott 下载地址 https://github.com/microsoft/VoTT/releases 双击vott-2.2.0-win32.exe安装标注软件,安装成功后桌面会生成应 ...