如果config
参数具有默认值,我如何定义function (config = {}) {};
参数的类型?
(?<=[\[,])[^\],]*(,)
答案 0 :(得分:13)
function f(config: Object = {}) {}
或者,更一般地说:
function f(p: T = v) {}
其中T
是一种类型,v
是T
类型的值。
有趣的是,函数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'