是否可以创建继承类型的所有属性的类或接口

时间:2019-02-28 13:23:24

标签: typescript type-conversion typescript-typings

假设我有类型

type A = {
    a: string,
    b: string,
};

有没有办法创建等效的界面,例如

interface B {
    a: string,
    b: string,
}

无需重写上面的所有内容。

有什么办法可以对类进行相同的操作,但是需要一些默认的赋值,例如

class C {
    a: '',
    b: '',
}

因此我们可以使用new C(),而不必重写A

如果不可能,这是根据class C中已经定义的内容来写type A的最佳方法

1 个答案:

答案 0 :(得分:2)

您可以使用extends

type A = {
    a: string,
    b: string,
};

interface B extends A { // <-- { a: string; b: string; c: string; }
    c: string;
} 

对于第二个问题,您可以使用某种工具,但它只会复制输入内容,因此您必须提供一个值:

class C implements A {
  a: '';
  b: '';
}