Насколько я понимаю в последний версиях ts type алиас может все то же самой, что и интерфейс, за исключением declaration merging.
Значит ли это, что, если не требуется declaration merging, то лучше всегда использовать типы, а не интерфейсы, чтобы код выглядел более единообразно или есть другие мысли на этот счет?
ivan0512, если вы знаете отличия, то о каких проблемах речь? Вы испытываете проблемы с type? Используйте interface, если нет, то о чем вопрос?
Вот мой практический опыт - на работе используем type для типов, interface для типизации сервисов. На петпроджекте занес бойлерплейт с правилами tslint-ера, ругался на type, просил все переименовывать в interface, глянул почему, сплошная демагогия. Снес tslint(он еще и в фактической "депрекейтед" стадии), прокачал eslint, больше не ругается, все обзываю типами. Полет нормальный
Это алиас, просто используйте то, что вам больше импонирует
Rerurk, в целом да, пишут, что интерфейс это как тип для чего-то, что в единственном экземпляре, типа именованной функции, а тип можно назначать для переменных, но по факту они одинаково работают и ts их понимает.
Возможно, в каких-то узких специфических кейсах, что-то, вероятно, может пойти не так(а может и нет), но тогда ts скажет вам об этом и тогда, спустя годы, вы вспомните про этот тред, прийдете и расскажите нам, как делать и жить правильно)
лучше всегда использовать типы, а не интерфейсы, чтобы код выглядел более единообразно
Если повальное использование типов приведет к более однообразному коду - то да.
А в другом проекте может так получиться что использование интерфейсов приведет к более однообразному коду.
В любом случае - однообразие - это хорошо. Что вас к нему приближает, так и пишите.
Мысли простые на самом деле: зри в корень.
Интерфейсы используй для описания интерфейсов, типы используй для описания типов.
И нет, это не одно и тоже.
Если утрировать: интерфейс - это описание структуры данных, встречающееся на стыке взаимодействия компонентов системы или разных систем, в основном используется только на этом самом стыке; тип - это внутренние сущности которыми оперирует система и которые встречаются повсеместно.