在typescript中扩展原型时,如何使用默认参数值



如果我有这个代码

declare global {
interface Number {
foo(bool: boolean): number;
}
}
Number.prototype.foo = function (bool: boolean = false) {
if (bool) {
return 0;
} else {
return this.valueOf();
}
}
export {};
(100).foo();

tsc告诉我它缺少(100).foo()bool参数,尽管我在函数定义中设置了默认值。

我不确定我在这里做错了什么。

在这里输入带有上述代码的操场链接。

类型中没有表示默认参数这一事实。你应该用一个问号来表示一个可选的参数:

declare global {
interface Number {
foo(bool?: boolean): number;
}
}

另请参阅:

  • 可选和默认参数

或者,您可以

declare global {
interface Number {
foo(): number;
foo(bool: boolean): number;
}
}

最新更新