我想键入一个函数,可以不带参数也可以带所有参数(在我的例子中有两个)。
我试过了:
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() : '')
}