我有一个带有重载方法的类(两个版本)。
其中一个版本不带参数,另一个版本可以接受两个参数。
class DFD {
...
getEndDatetime(): string;
getEndDatetime(startTime?: string, duration?: number): string {
if (!startTime || !duration) {
return new Date(this.getEndDatetimePOSIX()).toLocaleString();
} else {
this.getEndDatetimePOSIX(startTime, duration);
return new Date(this.getEndDatetimePOSIX(startTime, duration)).toLocaleString();
}
}
...
}
当我调用
this.getEndDateTime("8/11/2019, 11:42:17 PM", 5)
时,TypeScript 给出了一个错误提示:"Expected 0 arguments, but got 2."
我该如何满足 TypeScript 的要求?我正在运行 Node v10.16.0,使用 TypeScript v3.5.2。我尝试过调换函数重载的顺序:
// Switch the order
...
getEndDatetime(startTime?: string, duration?: number): string;
getEndDatetime(): string {
...
}
...
TypeScript 突出显示了代码中的
startTime
和 duration
,并表示找不到它们。我期望我的第一个重载实现在使用两个参数进行调用时不会引发任何错误,但是它确实引发了错误。
从其他地方的解读和建议表明我的代码应该通过。