要使函数的两个参数与已定义接口的联合匹配,可以使用联合类型和类型保护的概念。
首先,定义一个接口,该接口包含可能的参数类型组合,例如:
interface MyInterface {
param1: string;
}
interface MyOtherInterface {
param2: number;
}
type MyParams = MyInterface | MyOtherInterface;
然后,创建一个函数,该函数的参数类型为定义的联合类型:
function myFunction(params: MyParams) {
if ('param1' in params) {
// params符合MyInterface的类型
console.log(params.param1);
} else {
// params符合MyOtherInterface的类型
console.log(params.param2);
}
}
在函数内部,可以使用类型保护来判断参数的类型。使用in
操作符可以判断参数中是否存在指定的属性,从而确定参数的具体类型。根据参数的类型,可以执行相应的逻辑操作。
这样,当调用myFunction
时,可以传入符合MyInterface
或MyOtherInterface
的参数,并在函数内部根据参数的具体类型执行相应的操作。
例如:
myFunction({ param1: 'hello' }); // 输出 'hello'
myFunction({ param2: 42 }); // 输出 42
通过使用联合类型和类型保护,可以实现函数的两个参数与已定义接口的联合匹配,并根据参数的类型执行相应的逻辑。
领取专属 10元无门槛券
手把手带您无忧上云