是否可以在打字稿中为接口函数提供默认参数?

时间:2017-02-17 15:28:31

标签: typescript interface default-parameters

我按如下方式扩展Number类:

interface Number {
    evolution(now: number, before: number): string;
}


Number.prototype.magnitude = function(d=1, suffix="") {
    //…
}

我想提供默认参数。

但是当使用它时没有明确的参数ass:

label = "÷ " + show.magnitude();

我收到错误"提供的参数与签名"

不匹配

1 个答案:

答案 0 :(得分:0)

您需要告诉TypeScript编译器参数是optional

  
    

在JavaScript中,每个参数都是可选的,用户可以根据需要将其保留为关闭状态。当他们这样做时,他们的价值是不确定的。我们可以通过添加一个?来在TypeScript中获得此功能。到参数的末尾,我们希望是可选的。

  

这是一个类似于你想要完成的例子:

interface ISum {
    (baz?: number, buz?: number): number;
}

let sum: ISum = (baz = 1, buz = 2) => {
    return baz + buz;
}

console.log(sum()); //Console: 3
console.log(sum(2)); //Console: 4
console.log(sum(2, 7)); //Console: 9