在 TypeScript 中,如果有两个函数的参数和返回类型完全不相交,那么可以使用联合类型表示两个函数的组合。联合类型使用 |
符号表示。
下面是一个简单的示例,其中有两个不相交的函数:
function sum(a: number, b: number): number {
return a + b;
}
function concatenate(a: string, b: string): string {
return a + b;
}
上述代码中,sum
函数接受两个数字参数并返回它们的和,而 concatenate
函数接受两个字符串参数并返回它们的拼接结果。这两个函数的参数类型和返回类型完全不相同。
要表示这两个函数的联合类型,可以使用以下方式:
type UnionFunction = ((a: number, b: number) => number) | ((a: string, b: string) => string);
上述代码中,UnionFunction
是一个联合类型,它可以是 (a: number, b: number) => number
或 (a: string, b: string) => string
这两个函数类型中的任意一个。
使用该联合类型时,可以根据实际情况选择调用 sum
函数或 concatenate
函数:
function callUnionFunction(func: UnionFunction, a: any, b: any): any {
return func(a, b);
}
console.log(callUnionFunction(sum, 1, 2)); // 输出: 3
console.log(callUnionFunction(concatenate, "Hello", "World")); // 输出: HelloWorld
上述代码中,callUnionFunction
函数接受一个 UnionFunction
类型的参数 func
,并调用该函数。
需要注意的是,在使用联合类型时,需要对函数调用的参数类型进行判断,以确保调用的是正确的函数。
下一篇:不相交集合求和