博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
煦涵说Flow
阅读量:6450 次
发布时间:2019-06-23

本文共 2102 字,大约阅读时间需要 7 分钟。

是Facebook出品的一个JavaScript代码的静态类型检查工具,它做了很多处理,使您的代码更快,更智能,更自信,更好的适应性。现在已经在前端比较流行的React 、Vue 等框架中得到使用。今天就和大家一起来学习Flow以及在实际项目中的使用。

图片描述

Flow 安装

这里我们选择使用 yarn,当前你也可以使用 npm, 如果你对 yarn不是很了解,建议你阅读 煦涵说Yarn。首先我们先初始化一个 flow 项目,安装完编译器,然后再安装 flow

mkdir flow-projectcd flow-projectyarn inityarn add --dev babel-cli babel-preset-flow babel-preset-es2015

项目根目录下创建 .babelrc 文件,并增加如下内容:

{    "presets": ["flow", "es2015"]}

安装 Flow:

yarn add --dev flow-bin

运行 flow:

需要在根目录下新建一个 .flowconfig 文件,不然会报找不到该文件错误。

yarn run flow
yarn run v0.16.1$ "/flow-proj/node_modules/.bin/flow" Launching Flow server for /flow-projSpawned flow server (pid=17242)Logs will go to /private/tmp/flow/zSvue-workspacezSflow-proj.logNo errors!✨  Done in 2.48s.

Flow 使用

我们先在根目录下新建src目录,并新建一个index.js文件。同时在 package.json 文件中增加下面scripts内容,以方便我们后期的命令行编译。

index.js

// @flow[1,2,3,4].map((item:number, index) => {    return item * item;});

package.json

"scripts": {    "build": "yarn run flow && babel src -d lib"}

运行 yarn run build, 没有报错, 会在生成lib文件目录,index.js的 flow type 注释会被 remove 掉,同时进行了箭头函数到ES5的转换。

如果我修改上面index.js的代码:

// @flow['1',2,3,4].map((item:number, index) => {    return item * item;});

运行 yarn run build,会报如下类型检测错误:

yarn run v0.16.1$ "/flow-proj/node_modules/.bin/flow" src/index.js:3  3: ['1',2,3,4].map((item:number, index) => {      ^^^ string. This type is incompatible with the expected param type of  3: ['1',2,3,4].map((item:number, index) => {                           ^^^^^^ numberFound 1 errorerror Command failed with exit code 2.info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.error Command failed with exit code 1.info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

更多类型坚持实例不再一一列举,官网有很多介绍type的例子。

Flow 配置文件

上面提到没有配置文件,会报错,.flowconfig 文件由以下5个部分组成:

  • [include] --包含的文件或者目录
  • [ignore] --忽略的文件或者目录,支持正则匹配
  • [libs] --第三方库支持,项目根目录下的flow-typed目录作为库目录
  • [options] --默认键值对配置,某些选项可以使用命令行方式重载
  • [version] --期望使用的Flow版本

流行编辑器插件支持

  • Visual Studio Code: Flow-Language-Support
  • Sublime Text:Flow 和 SublimeLinter-flow

更多请参考:

感谢您的阅读

--eof--

作者[煦涵]

2017年05月20日

下面是「FED实验室」的微信公众号二维码,欢迎长按、扫描关注:

关注FED实验室

转载地址:http://hrlwo.baihongyu.com/

你可能感兴趣的文章
《思科UCS服务器统一计算》一第2章 服务器架构2.1 处理器的演变
查看>>
微软概述 Islandwood 计划
查看>>
《CUDA C编程权威指南》——3.2节理解线程束执行的本质
查看>>
《深入理解Android》一导读
查看>>
linux查看登录用户及踢掉用户
查看>>
如何防止网站因改版导致权重下降?
查看>>
《伟大的计算原理》一大数据
查看>>
《UG NX8.0中文版完全自学手册》一导读
查看>>
Windows和Linux端rsync推拉同步时中文乱码解决方法
查看>>
《Spark核心技术与高级应用》——1.3节本章小结
查看>>
解决军哥lnmp一键包报错pycurl.so
查看>>
Google 搜索结果正式 AMP 化
查看>>
《树莓派Python编程入门与实战》——第2章 认识Raspbian Linux发行版 2.1 了解Linux...
查看>>
阿里感悟 (十七)- 计划和规划能力
查看>>
《Java并发编程从入门到精通》显示锁Lock和ReentrantLock
查看>>
《Servlet、JSP和Spring MVC初学指南》——1.12 小结
查看>>
《精通软件性能测试与LoadRunner最佳实战》—第2章2.5节 测试脚本编写
查看>>
《解读NoSQL》——第1章 NoSQL:明智的选择
查看>>
算力即权力
查看>>
《Nmap渗透测试指南》—第6章6.8节目标主机随机排序
查看>>