boolean): void { /* ... */ }
method(); // 报错,缺少参数
method(1); // ok
method(1.2); // 报错,类型不对
method('hi'); // ok
method('hello'); // 报错,类型不对
method(true); // ok
method(false); // ok
混合(Mixed)类型是指任意数据类型
// @flow
let hello: mixed; // 声明一个 mixed 类型的变量
hello = 'hello'; // 赋值
hello = 'hi'; // 重新赋值
hello = 12; // 重新赋值
hello = undefined; // 重新赋值
hello = null; // 重新赋值1.4 复合类型
数组
// @flow
let arr1: Array<boolean> = [true, false, true]; // 声明一个元素是 boolean 的数组
arr1 = [true, 1]; // 报错,1 不是 boolean 值
arr1 = ['']; // 报错,'' 不是 boolean 值
let arr2: Array<string> = ["A", "B", "C"]; // 声明一个元素是 string 的数组
let arr3: Array<mixed> = [1, true, "three"] // 声明一个元素是任意类型的数组
arr1 = [true, 1]; // 重新赋值
arr1 = ['']; // 重新赋值map
// @flow
// 声明一个 map 类型,其有一个名为 foo,类型 boolean 的子元素
let obj1: { foo: boolean } = { foo: true };
obj1 = {}; // 报错,缺少 foo 这个属性值
obj1 = {foo: 1}; // 报错,属性值 foo 的类型必须是 boolean
obj1 = {foo: false, bar: 'hello'}; // 重新赋值
// 声明一个 map 类型,其有名为 foo, bar, baz,类型 number, boolean, string 的子元素
let obj2: {
foo: number,
bar: boolean,
baz: string,
} = {
foo: 1,
bar: true,
baz: 'three',
};更静态类型可以查看 Type Annotations
关键词:javascript的扩展:如何运用flow静态分类进行检查报错