2 ответов:
на Спецификация Языка Машинописи:
В отличие от объявления интерфейса, которое всегда вводит именованный тип объекта, объявление псевдонима типа может ввести имя для любого типа, включая примитивы, объединения и типы пересечений.
спецификация говорится:
типы интерфейса имеют много общего с псевдонимами типов объектов литералы, но так как типы интерфейса предложить больше возможностей, они обычно предпочитается вводить псевдонимы. Например, тип интерфейса
interface Point { x: number; y: number; }может быть записан как псевдоним типа
type Point = { x: number; y: number; };однако это означает, что следующие возможности теряются:
- интерфейс может быть назван в предложении extends или implements, но псевдоним типа для литерала типа объекта не может.
- интерфейс может иметь несколько объединенных объявлений, но псевдоним типа для литерала типа объекта не может.
https://www.typescriptlang.org/docs/handbook/advanced-types.html
одно отличие заключается в том, что интерфейсы создают новое имя, которое используется везде. Псевдонимы типов не создают новое имя - например, сообщения об ошибках не будут использовать имя псевдонима.
Comments