【发布时间】:2019-12-22 06:08:22
【问题描述】:
我有一个不同数量的打字稿函数声明:
function f(): void;
function f(code: 0): void;
function f(code: 1, msg: string): void;
function f(code: 0 | 1 = 0, msg?: string): void { /* omit implementation */ }
因此它可以被调用为:
f() // ok
f(0) // ok
f(1, "error message") // ok
f(0, "message") // type error
f(1) // type error
我的问题是如何在不使用函数重载的情况下重构这个函数声明? (例如,联合类型、条件类型等)
【问题讨论】:
标签: typescript overloading typescript-typings