TypeScript如何根据参数数量不同,返回不同的类型?

当只有a参数时,返回number类型
当有b参数时,就不返回。

代码如下

function test(a: number): number;
function test(a: number, b: string): void{
    if (typeof b !== 'undefined') {
        console.log(b)    
    } else {
        return a+1
    }
}

但是会编译错误。 我看了一下函数重载都是在相同参数,但是参数类型不同的情况下。
请问下可以实现我的需求吗?

阅读 7.3k
1 个回答
function test(a: number): number;
function test(a: number, b: string): void;
function test(a: number, b?: string): number | void{
    if (typeof b !== 'undefined') {
        console.log(b)    
    } else {
        return a+1
    }
}

先写声明 实现上要兼容所有的声明