config
鉴于它具有默认值,如何定义参数的类型?
function (config = {}) {};
function f(config: Object = {}) {}
或者,更一般地说:
function f(p: T = v) {}
whereT
是一个类型,并且v
是一个 type 的值T
。
有趣的是,函数的类型f
是(p?: T): void
。也就是说,Flow 理解提供默认值会使参数成为可选参数。您不需要显式地将参数类型设为可选——尽管这并没有什么坏处。
在文件中写入declare function
语句时.js.flow
,不能包含默认值;它会导致错误。因此,您必须明确声明该参数是可选的:
declare function f(p?: T): void;
胖箭头函数中的流类型和默认参数的工作方式类似。
给定一个调用foo
参数的函数bar
,您可以在参数后立即用冒号指定类型,然后使用赋值 (=) 运算符设置其默认值。最后,在结束括号后,立即用另一个冒号定义返回值的类型。
foo = (bar: string = 'baz'): string => bar;
foo(); // 'baz'