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

安装

  • 项目初始化
 yarn init -y
  • 编译器安装
yarn add --dev babel-cli babel-preset-flow
配置babel
.babelrc
{
"presets": ["flow"]
}
package.json
{
"name": "my-project",
"main": "lib/index.js",
"scripts": {
"build": "babel src/ -d lib/",
"prepublish": "yarn run build"
}
}
设置 flow
yarn add --dev flow-bin 运行 yarn run flow 备注:需要先执行yarn run flow init

简单demo

  • 项目结构
├── lib  //  输出目录
│ ├── api
│ │ ├── api.js
│ │ └── index.js
│ └── user
│ └── user.js
├── package.json
├── src // flow 源码目录
│ ├── api
│ │ ├── api.js
│ │ └── index.js
│ └── user
│ └── user.js
└── yarn.lock
  • 代码说明
package.sjon
{
"name": "second",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-preset-flow": "^6.23.0",
"flow-bin": "^0.77.0"
},
"scripts": {
"build": "babel src/ -d lib/",
"flow":"flow",
"i":"flow init",
"start":"node lib/api"
}
} src/user/user.js
// @flow // 函数定义
function getinfo(name:string):string {
return name;
}
module.exports={
name:"dalong",
age:33,
get:getinfo
}
src/api/api.js
// @flow function call(name:string):string {
const user = require("../user/user")
return user.get("dalong")
}
module.exports=call
src/api/index.js // @flow
const api = require("./api")
console.log(api("dalong"))
  • 构建&&运行
yarn build
yarn start
  • 参考提示

说明

实际使用vscode 需要将系统内部的ts 检查,禁止,同时添加以下插件 ,总的来说还是就表简答,使用比较方便的,
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. Mybatis 之动态代理

    使用Mybatis 开发Web 工程时,通过Mapper 动态代理机制,可以只编写接口以及方法的定义. 如下: 定义db.properties driver=oracle.jdbc.OracleDri ...

  2. Struts2中struts.multipart.maxSize配置

    今天使用Struts2的文件上传控件时,在struts.xml中,将处理上传的action中的fileUpload拦截器的maximumSize参数设置为5000000,上传了一个3M的文件后发现控制 ...

  3. Android5.0免Root截屏,录屏

    http://blog.csdn.net/wds1181977/article/details/52174840 MediaProjection介绍 MediaProjection可以用来捕捉屏幕,具 ...

  4. Ubuntu 16.04+1080Ti机器学习基本环境配置【转】

    本文转载自:https://blog.csdn.net/MahoneSun/article/details/80808930 一.设置网络 机器有两张网卡,将当前正在使用的“有线连接1”配置为以下的设 ...

  5. SwitchyOmega 设置修改代理

    在开发过程中,web.config中很多配置都是生产的域名,但是在本地开发时并不能用这些生产的地址,就想在打开该域名时跳转到本地ip地址. 修改方式: 1.hosts文件修改 这种方式是在整个电脑上面 ...

  6. HDU 2680 Choose the best route(多起点单终点最短路问题)题解

    题意:小A要乘车到s车站,他有w个起始车站可选,问最短时间. 思路:用Floyd超时,Dijkstra遍历,但是也超时.仔细看看你会发现这道题目好像是多源点单终点问题,终点已经确定,那么我们可以直接转 ...

  7. noip2017普及 兔纸游玩记

    初中的最后一场比赛...就这样结束了吧...QAQ时间...真够快的qwq 应该是初中的最后一篇游记了吧,尽量写多点... 这是一篇,初三 老年菜兔的 noip2017 普及游玩记吧! DAY 0  ...

  8. Python学习札记(三十八) 面向对象编程 Object Oriented Program 9

    参考:多重继承 NOTE #!/usr/bin/env python3 class Animal(object): def __init__(self, name): self.name = name ...

  9. LightOJ 1038 Race to 1 Again(概率dp+期望)

    https://vjudge.net/problem/LightOJ-1038 题意:给出一个数n,每次选择n的一个约数m,n=n/m,直到n=1,求次数的期望. 思路:d[i]表示将i这个数变成1的 ...

  10. springboot p6spy 打印完整sql

    调试时打印出sql的需求,太正常不过了,mybatis也提供了这样的功能: mybatis: configuration: log-impl: org.apache.ibatis.logging.st ...