我有一个扩展一个基本界面的接口列表。
我还有一些可以接受任何这些接口的函数。
我想创建一个描述这种参数的新界面。
所以我有这样的事情:
interface BasicInterface {...};
interface A extends BasicInterface {...};
interface B extends BasicInterface {...};
我想要像
这样的东西interface C = A | B;
我知道我可以做的功能
function X(param1: A | B) {};
但由于它不止一个函数,我希望它们只有一个界面
答案 0 :(得分:13)
因此,在对Typescript文档进行一些挖掘之后,我找到了我想要的东西。
我可以声明一个像type C = A | B;
然后在功能中我使用类型防护来访问正确的东西:
function isA(param: C): param is A {
return param.type === A;
}
function X(param1: C) {
if (isA(param1)) //things related to A
else //things related to B
};