今天,我正在学习 TypeScript 重载,我在 TypeScript 的文档中看到了这样的内容:
function fn(x: string): Moment;
function fn(x: number): Moment;
function fn(x: number | string) {
// When written with separate overloads, incorrectly an error
// When written with union types, correctly OK
return moment().utcOffset(x);
}
参考资料如下: 注意事项
不正确的错误是什么意思?我确实在我的机器上执行了这段代码,它没有抛出错误。 谁能为我解释一下这个?谢谢!
TypeScript 文档提到“不正确的错误”,因为 TypeScript 检查重载的实现方式。
TypeScript 检查实现是否与所有重载匹配。 如果 TypeScript 无法确认
moment().utcOffset(x)
同时支持 number
和 string
,它可能会错误地抛出错误。