【问题标题】:What is the syntax for defining a type when parameter has a default value?当参数具有默认值时,定义类型的语法是什么?
【发布时间】:2015-12-29 21:07:37
【问题描述】:

如果config 参数有默认值,我该如何定义它的类型?

function (config = {}) {};

【问题讨论】:

    标签: flowtype


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      或者,更一般地说:

      function f(p: T = v) {}

      其中T 是一个类型,v 是一个T 类型的值。

      有趣的是,函数f 的类型是(p?: T): void。也就是说,Flow 理解提供默认值会使参数成为可选参数。您不需要显式地将参数类型设为可选——尽管这并没有什么坏处。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-05-26
        • 2019-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-09
        • 2018-02-18
        相关资源
        最近更新 更多