如果我有这个代码
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;
}
}