flow 是一个javascript 静态检查的工具,由facebook 开发, 使用起来简单,方便。

安装

  • 项目初始化
  1. yarn init -y
  • 编译器安装
  1. yarn add --dev babel-cli babel-preset-flow
  2. 配置babel
  3. .babelrc
  4. {
  5. "presets": ["flow"]
  6. }
  7. package.json
  8. {
  9. "name": "my-project",
  10. "main": "lib/index.js",
  11. "scripts": {
  12. "build": "babel src/ -d lib/",
  13. "prepublish": "yarn run build"
  14. }
  15. }
  16. 设置 flow
  17. yarn add --dev flow-bin
  18. 运行
  19. yarn run flow
  20. 备注:需要先执行yarn run flow init

简单demo

  • 项目结构
  1. ├── lib // 输出目录
  2. ├── api
  3. ├── api.js
  4. └── index.js
  5. └── user
  6. └── user.js
  7. ├── package.json
  8. ├── src // flow 源码目录
  9. ├── api
  10. ├── api.js
  11. └── index.js
  12. └── user
  13. └── user.js
  14. └── yarn.lock
  • 代码说明
  1. package.sjon
  2. {
  3. "name": "second",
  4. "version": "1.0.0",
  5. "main": "index.js",
  6. "license": "MIT",
  7. "devDependencies": {
  8. "babel-cli": "^6.26.0",
  9. "babel-preset-flow": "^6.23.0",
  10. "flow-bin": "^0.77.0"
  11. },
  12. "scripts": {
  13. "build": "babel src/ -d lib/",
  14. "flow":"flow",
  15. "i":"flow init",
  16. "start":"node lib/api"
  17. }
  18. }
  19. src/user/user.js
  20. // @flow
  21. // 函数定义
  22. function getinfo(name:string):string {
  23. return name;
  24. }
  25. module.exports={
  26. name:"dalong",
  27. age:33,
  28. get:getinfo
  29. }
  30. src/api/api.js
  31. // @flow
  32. function call(name:string):string {
  33. const user = require("../user/user")
  34. return user.get("dalong")
  35. }
  36. module.exports=call
  37. src/api/index.js
  38. // @flow
  39. const api = require("./api")
  40. console.log(api("dalong"))
  • 构建&&运行
  1. yarn build
  2. yarn start
  • 参考提示

说明

  1. 实际使用vscode 需要将系统内部的ts 检查,禁止,同时添加以下插件 ,总的来说还是就表简答,使用比较方便的,
  2. flow-typed 也是一个不错的选择,帮助我们校验三方类库类似ts typings

参考资料

https://flow.org/en/docs/libdefs/
https://github.com/flow-typed/flow-typed#readme
https://flow.org/en/docs/getting-started/

 
 
 
 

fackbook flow 简单使用的更多相关文章

  1. 数据结构之网络流入门(Network Flow)简单小节

    网络流的相关定义: 源点:有n个点,有m条有向边,有一个点很特殊,只出不进,叫做源点. 汇点:另一个点也很特殊,只进不出,叫做汇点. 容量和流量:每条有向边上有两个量,容量和流量,从i到j的容量通常用 ...

  2. 【Git】GitHub for Windows使用(3) GitHub Flow的使用

    第三章了,关于GitHub上有一个Pull Request,是展示本项目或资源所有的Pull 请求的. 而这个开发流程是基于GitHub Flow的开发模式. 网上关于GitHub Flow简单的介绍 ...

  3. 知识全聚集 .Net Core 技术突破 | 简单说说工作单元

    知识全聚集 .Net Core 技术突破 | 简单说说工作单元 教程 01 | 模块化方案一 02 | 模块化方案二 其他教程预览 分库分表项目实战教程 Git地址: https://github.c ...

  4. 深度解密Go语言之channel

    目录 并发模型 并发与并行 什么是 CSP 什么是 channel channel 实现 CSP 为什么要 channel channel 实现原理 数据结构 创建 接收 发送 关闭 channel ...

  5. spring boot 集成apollo 快速指南

    目前市面上流行的三大配置中心框架:Spring CLoud Config .Alibaba Nacos 以及携程apollo, 我们相应架构组号召,就使用Apollo吧. Work Flow 简单解释 ...

  6. 几张简单的terraform flow 图——可以快速了解terraform的使用

    以下是一个简单额terraform flow 我们快速的了解terraform 的使用,基于流程 参考图 参考架构 简单使用流程 说明 从上图我们可以看出terraform 的使用 tf 内容编写 定 ...

  7. flow flow-typed 定义简单demo

    flow-typed 安装 全局 npm install -g flow-typed 测试代码 一个简单全局函数 目录根目录 flow-typed userLibDef.js declare func ...

  8. git + git flow 的简单介绍

    1.git简单实用 git:是一种分布式版本控制系统,因为其优秀的特性个人十分推崇. 1.1设置本机用户身份 git config -global user.name "userName&q ...

  9. Git flow的分支模型与及经常使用命令简单介绍

    Git flow是git的一个扩展集,它基于Vincent Driessen 的分支模型,文章"A successful Git branching model"对这一分支模型进行 ...

随机推荐

  1. iOS App迁移(App Transfer)注意点

    1.App迁移需要苹果审核吗? 答:不需要 2.App迁移需要多长时间? 答:迁移操作过程很快,A账号发出申请,B账号接收,几分钟时间.App Store 展示B账号相关信息可能几分钟,也可能有延迟几 ...

  2. SpringMVC中@pathVariable和@RequestParam注解的区别

    @pathVariable和@RequestParam的区别 @pathVariable:是从路径中获取变量,也就是把路径当做变量 @RequestParam:是从请求里面获取参数 案例分析: /Sp ...

  3. Java的Servlet、Filter、Interceptor、Listener

    写在前面: 使用Spring-Boot时,嵌入式Servlet容器可以通过扫描注解(@ServletComponentScan)的方式注册Servlet.Filter和Servlet规范的所有监听器( ...

  4. POJ 3436 ACM Computer Factory(最大流+路径输出)

    http://poj.org/problem?id=3436 题意: 每台计算机包含P个部件,当所有这些部件都准备齐全后,计算机就组装完成了.计算机的生产过程通过N台不同的机器来完成,每台机器用它的性 ...

  5. R软件中排序:sort(),rank(),order()

    在R中,和排序相关的函数主要有三个:sort(),rank(),order().    sort(x)是对向量x进行排序,返回值排序后的数值向量.rank()是求秩的函数,它的返回值是这个向量中对应元 ...

  6. 前端引用公共html模块方案

    最近临时一个负责公司官网的妹纸请假,于是临时接手了下官网的项目,官网都是静态页面,算是很简单的,但发现页面挺多,而每个页面总有部分是和其他页面一模一样的,比如页头.页尾等,这样就导致一个地方的修改要在 ...

  7. subllime的插件使用

    1.emmet快速使用的方法. html:xt 然后按下tab快速的生成一个html文档. 生成10个div----- div*10 div->ul->li->a->img 写 ...

  8. c#只读字段和常量的区别,以及静态构造函数的使用 .

    using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace Console ...

  9. 【Demo】CSS3 动画 加载进度条

    实例结果图: 完整代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  10. cf812B 搜索

    B. Sagheer, the Hausmeister time limit per test 1 second memory limit per test 256 megabytes input s ...