Можно ли создать класс или интерфейс, которые наследуют все свойства типа - PullRequest
0 голосов
/ 28 февраля 2019

Допустим, у меня есть тип

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 голосов
/ 28 февраля 2019

Вы можете использовать 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: '';
}
...