Typescript 尝试调用重载函数时出现类型检查错误
我有一个重载函数:Typescript 尝试调用重载函数时出现类型检查错误,typescript,Typescript,我有一个重载函数: function find(id: number); function find(id: string); function find(id: number | string) { // do stuff } 但当我试着这样称呼它时,我得到了一个错误: function test(id: string | number) { return find(id); } 错误-没有与此调用匹配的重载。有什么解决方法吗?重载的最后一行用于将两个重载签名合并到一个实现中。它本
function find(id: number);
function find(id: string);
function find(id: number | string) {
// do stuff
}
但当我试着这样称呼它时,我得到了一个错误:
function test(id: string | number) {
return find(id);
}
错误-
没有与此调用匹配的重载
。有什么解决方法吗?重载的最后一行用于将两个重载签名合并到一个实现中。它本身并不被认为是一个重载签名,所以这就是为什么会出现错误。听起来很傻,如果你想允许字符串
、数字
、和数字|字符串
,你只需复制最后一行并使其成为额外的重载即可
function find(id: number);
function find(id: string);
function find(id: number | string);
function find(id: number | string) {
// do stuff
}