9

config鉴于它具有默认值,如何定义参数的类型?

function (config = {}) {};
4

2 回答 2

13

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;

于 2015-10-13T08:12:33.353 回答
0

胖箭头函数中的流类型和默认参数的工作方式类似。

给定一个调用foo参数的函数bar,您可以在参数后立即用冒号指定类型,然后使用赋值 (=) 运算符设置其默认值。最后,在结束括号后,立即用另一个冒号定义返回值的类型。

foo = (bar: string = 'baz'): string => bar;
foo(); // 'baz'
于 2018-05-03T21:04:53.773 回答