创建typescript接口作为其他接口

时间:2017-02-10 09:52:19

标签: typescript

我有一个扩展一个基本界面的接口列表。

我还有一些可以接受任何这些接口的函数。

我想创建一个描述这种参数的新界面。

所以我有这样的事情:

interface BasicInterface {...};

interface A extends BasicInterface {...};
interface B extends BasicInterface {...};

我想要像

这样的东西
interface C = A | B;

我知道我可以做的功能

function X(param1: A | B) {};

但由于它不止一个函数,我希望它们只有一个界面

1 个答案:

答案 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
};