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

雾秋
  • 1.3k

当只有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
    }
}

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

回复
阅读 73
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
    }
}

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏