当参数具有默认值时,定义类型的语法是什么?

时间:2015-10-01 17:56:00

标签: flowtype

如果config参数具有默认值,我如何定义function (config = {}) {}; 参数的类型?

(?<=[\[,])[^\],]*(,)

2 个答案:

答案 0 :(得分:13)

function f(config: Object = {}) {}

或者,更一般地说:

function f(p: T = v) {}

其中T是一种类型,vT类型的值。

有趣的是,函数f的类型是(p?: T): void。也就是说,Flow了解提供默认值会使参数成为可选参数。

,您不需要明确地将参数类型设为可选 - 尽管它没有受到伤害。

declare function文件中编写.js.flow语句时,不能包含默认值;它会导致错误。所以你必须明确声明参数是可选的:

declare function f(p?: T): void;

答案 1 :(得分:0)

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

给定一个名为foo的函数,它接受参数bar,在参数后面用冒号指定类型,然后使用赋值(=)运算符设置其默认值。最后,在关闭括号后立即使用另一个冒号定义返回值的类型。

foo = (bar: string = 'baz'): string => bar;
foo(); // 'baz'