创建typescript接口作为其他接口的联合

创建typescript接口作为其他接口的联合,typescript,Typescript,我有一个扩展了一个基本接口的接口列表 我还有一些函数可以接受这些接口中的任何一个 我想创建一个新的接口来描述这种参数 所以我有这样的想法: interface BasicInterface {...}; interface A extends BasicInterface {...}; interface B extends BasicInterface {...}; 我想要像这样的东西 interface C = A | B; 我知道在我的功能中我能做到 function X(param

我有一个扩展了一个基本接口的接口列表

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

我想创建一个新的接口来描述这种参数

所以我有这样的想法:

interface BasicInterface {...};

interface A extends BasicInterface {...};
interface B extends BasicInterface {...};
我想要像这样的东西

interface C = A | B;
我知道在我的功能中我能做到

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

但是,由于它不止一个函数,我希望所有函数都只有一个接口,因此,在深入挖掘Typescript文档之后,我找到了我想要的:

我可以声明一个新类型,比如
typec=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
};

X需要比BasicInterface中更多的内容吗?@toskv是的,它会检查
BasicInterface
的属性,然后使用每个接口的特定属性问题是什么?因为你可以很容易地定义一个param签名(除了如果这真的是一个好主意的话这个事实之外)@robkuz我想要一个
param1
的类型,比如
函数X(param1:C){}
你从哪里得到属性
type
param.type==a
),这取决于你。请查看此处的
用户定义类型保护装置
部分: