Можно ли распространить интерфейс TypeScript на другой интерфейс?

В JavaScript объект можно распространить на другой объект, используя синтаксис распространения:

const a = {one: 1, two: 2}
const b = {...a, three: 3} // = {one: 1, two: 2, three: 3}

Есть ли способ распространить интерфейс машинописного текста в другой интерфейс таким образом?

interface IA {
  one: number;
  two: number;
}

interface IB {
  ...IA; // Does not work like this
  three: number;
}

Так что полученный интерфейс IB будет выглядеть так:

{
  one: number;
  two: number;
  three: number;
}

1 ответ

Решение

Вы можете просто использовать наследование, чтобы сделать это:

interface IA {
    one: number;
    two: number;
}
interface IC {
    other: number;
    four: number;
}
interface IB extends IA, IC {
    three: number;
}
Другие вопросы по тегам