Различия Type и Interface в TypeScript

preview_player
Показать описание
Для чего используются типы и интерфейсы в TypeScript и в чём их различие.

Мой Telegram канал

Вы можете поддержать мой канал:
Рекомендации по теме
Комментарии
Автор

Не совсем раскрыта тема видео)

type можно расширять с помощью & и указывать как implements для класса - ошибки не будет.
Главные отличия типов от интерфейсов:

1. type используется для примитивов и функций (как ты сказал в видео)
2. type позволяет динамически работать с типами с помощью utility types или union types. Например Omet, Pick, ReturnType, Partial и т.п. - то есть динамически создавать типы на основе каких-то других типов.
3. type может использоваться для кортежа, а интерфейс нет

Итого, если вы хотите типизировать объект/класс, указав все типы свойств вручную, то лучше использовать интерфейс. Если вы хотите динамически создать тип на основе какого-то другого типа / интерфейса, либо на основе каких-то других данные с помощью Utility Types, то надо использовать type (хотя других вариантов тут и нет).

sergeimalinin
Автор

1. через интерфейс можно описать функцию
2. Имплеменить типы в классах тоже можно, главное чтобы тип не был юнионом
3. Наследовать типы можно через интерсекшн (&), получается тоже самое

Furamy
Автор

Ну объединение типов тоже можно легко сделать с помощью &.

Капитангрез