如何编写一个没有参数或全部参数的TypeScript重载?



我想键入一个函数,可以不带参数也可以带所有参数(在我的例子中有两个)。

我试过了:

function foo(a: string, b: number): string
function foo(a?: string, b?: number): string
function foo(a?: string, b?: number): string {
return a + (b ? b.toString() : '')
}

…,但我仍然可以提供一个参数,没有收到错误:

foo();            // ok
foo('hello', 42); // ok
foo('oops');      // should error, but doesn't

这是一个TypeScript playground链接。

这可能吗?

function foo(a: string, b: number): string
function foo(): string // YOU NEED NO ARGS YOU WRITE NO ARGS
function foo(a?: string, b?: number): string {
return a + (b ? b.toString() : '')
}

相关内容

最新更新