[英]Typescript: Function overloading
What would be the easiest way to achieve / implement such a function overload in TypeScript? 在TypeScript中实现/实现此类函数重载的最简单方法是什么?
function Foo(
param1: number,
param2: string,
param3: string,
param4: () => void,
param5: (xyz: string) => void): void { .... }
function Foo(
param6: number,
param3: string,
param4: () => void,
param5: (xyz: string) => void): void { .... }
It's covered in Overloads section of the Functions docs , but in your case it can be like this: 它包含在函数文档的重载部分中 ,但在您的情况下,它可以是这样的:
function Foo(
param1: number,
param2: string,
param3: string,
param4: () => void,
param5: (xyz: string) => void): void;
function Foo(
param6: number,
param3: string,
param4: () => void,
param5: (xyz: string) => void): void;
function Foo(...args: any[]): void {
if (args.length === 5) {
// 1st signature
} else if (args.length === 4) {
// 2nd signature
} else {
// error: unknown signature
}
}
( code in playground ) ( 游乐场代码 )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.