【发布时间】:2020-01-31 22:30:59
【问题描述】:
假设一个简单的重载函数定义如下:
function f(p: number) : string;
function f(p: string) : undefined;
function f(p: number | string): number | string {
return (typeof p === 'number') ? String(p) : undefined;
}
Parameters<typeof f>[0] 只给我string。因为它是定义的最后一个重载。
如何选择从哪个重载函数获取参数?
当然不必重新排序定义。
【问题讨论】:
-
Do's and Don'ts 国家使用联合类型而不是因参数类型而异的重复重载
-
@AndrewNolan 它还声明了
Note that we didn’t make b optional here because the return types of the signatures differ。像这样,由于地雷有不同的返回类型,这根本不是问题。
标签: typescript