首页 > 解决方案 > Typescript Mixin 动态接口

问题描述

interface Base {
}

interface A {
    a: number
}

interface B {
    b: number;
}

interface C {
    c: number
}

interface AB extends A, B, Base {}
interface AC extends A, C, Base {}
interface BC extends B, C, Base {}
interface ABC extends A, B, C, Base {}

Base可以将任何接口扩展为选择性。我想知道将扩展接口作为其他语法。因为可以增加可扩展类的数量。

interface Mix2<T, U> extends T, U, Base {
}
type AB = Mix2<A, B>
type BC = Mix2<B, C>

我知道,这是错误的语法,只是我期望的示例。

标签: typescript

解决方案


如果您只想要一个表示必须具有其他两个已定义类型的成员的对象的类型,则可以使用交集类型

type AB = A & B & Base
type BC = B & C & Baee

您可以在此处阅读有关交叉点类型的更多信息


推荐阅读