interface A {
x: number;
}
interface B extends A {
y: string;
}
а также дополненный
interface C {
m: boolean;
}
// ... later ...
interface C {
n: number;
}
Типичные псевдонимы, однако, могут представлять некоторые вещи, интерфейсы которых не могут
type NumOrStr = number | string;
type NeatAndCool = Neat & Cool;
type JustSomeOtherName = SomeType;
Итак, если у вас просто простой тип объекта, как показано в вашем вопросе, интерфейс обычно лучше подходит. Если вы обнаружите, что хотите написать то, что не может быть написано как интерфейс, или хотите просто дать что-то другое имя, псевдоним типа лучше.