flow JavaScript 静态类型检查工具
2017-02-06 14:12
309 查看
内置类型
flow内置类型有
boolean, number, string, null, void, any, mixed, literal type.
其中
boolean, number, string均为小写, 并与 JavaScript 内置的类型
Boolean, Number, String不同.
JavaScript 中
null的类型为
null,
undefined类型为
void.
any是所有类型的父类或子类,
mixed是所有类型的父类.
可以用任意的
boolean, number, string类型的字面量表示类型. 这对表示枚举或联合体非常有用.
type Suit = | "Diamonds" | "Clubs" | "Hearts" | "Spades"; type Rank = | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | "Jack" | "Queen" | "King" | "Ace"; type Card = { suit: Suit, rank: Rank, }
数组和元组
数组
Array<T>表示类型
T的数组, 其简写为
T[].
元组
[<type1>, <type2>, <type3>, ...]定义元组类型. 元组中的元素个数是类型的一部分, 因此不能用数组类型代替元组.
类
flow 支持 es6 中的类, 并部分支持原型类.Class<T>表示
T类实例的类型.
T表示实例的类型.
类是名义类型 (nominal typing, 类型判断根据名字), 对象和接口是结构类型 (struct typing, 类型判断根据内容).
this可在类方法定义中作为输出值使用.
对象
对象类型通过对象字面量声明.{ x1: T1; x2: T2; x3: T3;}
可选属性
var optObj: { a: string; b?: number } = { a: "hello" };
函数
协变
Maybe 类型
nullable
别名
Union 和 Intersection
Union类型表示值可以是任意输入类型.
Intersection类型表示值必须符合所有输入类型 (struct typing).
Union: <type 1> | <type 2> ... | <type n> Intersection: <type 1> & <type 2> ... & <type n>
typeof
在flow中类型声明部分可以通过
typeof来使用其他变量的类型.
声明
相关文章推荐
- JavaScript静态类型检查工具FLOW简介
- JavaScript静态类型检查工具FLOW简介
- Flow: JavaScript静态类型检查工具
- Flow之一个新的Javascript静态类型检查器
- 理解Flow静态类型检查
- Flow之一个新的Javascript静态类型检查器
- javascript:对象类型检查
- 精通JavaScript —— 函数重载和类型检查
- 面向对象的 Javascript 函数重载和类型检查
- Linux 编程,调试,评测,代码静态检查,开发环境工具
- Analyze 静态分析工具中显示 大量的CF类型指针 内存leak 问题, Core Foundation 类型指针内存泄漏
- c++代码静态检查工具——cpplint使用技巧
- 静态类型检查与继承
- C# 静态代码检查工具StyleCop
- 静态代码检查工具 cppcheck
- C++ 是一门静态类型语言,在编译时会作类型检查
- Java静态检查工具PMD是什么的缩写呢
- jQuery transform/action类型静态工具方法探究
- 一个用于Objective-C静态检查的工具-occheck
- SourceInsight工具增强——AStyle(代码格式化)、PC-Lint(静态检查)