Для чего используются типы и интерфейсы в TypeScript и в чём их различие. Мой Telegram канал t.me/way_of_de... Вы можете поддержать мой канал: www.donational... donate.qiwi.co...
Не совсем раскрыта тема видео) type можно расширять с помощью & и указывать как implements для класса - ошибки не будет. Главные отличия типов от интерфейсов: 1. type используется для примитивов и функций (как ты сказал в видео) 2. type позволяет динамически работать с типами с помощью utility types или union types. Например Omet, Pick, ReturnType, Partial и т.п. - то есть динамически создавать типы на основе каких-то других типов. 3. type может использоваться для кортежа, а интерфейс нет Итого, если вы хотите типизировать объект/класс, указав все типы свойств вручную, то лучше использовать интерфейс. Если вы хотите динамически создать тип на основе какого-то другого типа / интерфейса, либо на основе каких-то других данные с помощью Utility Types, то надо использовать type (хотя других вариантов тут и нет).
Хотя и для функций тоже можно использовать интерфейс. Объявляется таким образом: interface Fn { (a: number) => : number; } Реализация функции с тами интерфейсом, например: const fn: Fn = (num) => num + 1;
Спасибо за комментарий. Зашел сюда после прочтения статьи на хабре, когда на третьем пункте, то что я увидел в своем codesandbox разошлось с тем, что говорил автор видео. Что от type нельзя делать множественное наследование, то есть писать так: class Woman extends Human, Dishwasher. Потом написал так с помощью типов и никаких ошибок я не увидел у себя в IDE.
К твоему третьему пункту, теперь и интерфейс может использоваться в кортеже в версии ts 5.1.6. Хотя и на 4.7.4 тоже можно. Откуда ты взял инфу для третьего пункта ?
1. через интерфейс можно описать функцию 2. Имплеменить типы в классах тоже можно, главное чтобы тип не был юнионом 3. Наследовать типы можно через интерсекшн (&), получается тоже самое
Не совсем раскрыта тема видео)
type можно расширять с помощью & и указывать как implements для класса - ошибки не будет.
Главные отличия типов от интерфейсов:
1. type используется для примитивов и функций (как ты сказал в видео)
2. type позволяет динамически работать с типами с помощью utility types или union types. Например Omet, Pick, ReturnType, Partial и т.п. - то есть динамически создавать типы на основе каких-то других типов.
3. type может использоваться для кортежа, а интерфейс нет
Итого, если вы хотите типизировать объект/класс, указав все типы свойств вручную, то лучше использовать интерфейс. Если вы хотите динамически создать тип на основе какого-то другого типа / интерфейса, либо на основе каких-то других данные с помощью Utility Types, то надо использовать type (хотя других вариантов тут и нет).
Хотя и для функций тоже можно использовать интерфейс. Объявляется таким образом:
interface Fn {
(a: number) => : number;
}
Реализация функции с тами интерфейсом, например:
const fn: Fn = (num) => num + 1;
Спасибо, ваш комментарий полностью закрыл этот вопрос)
Спасибо за комментарий. Зашел сюда после прочтения статьи на хабре, когда на третьем пункте, то что я увидел в своем codesandbox разошлось с тем, что говорил автор видео. Что от type нельзя делать множественное наследование, то есть писать так: class Woman extends Human, Dishwasher. Потом написал так с помощью типов и никаких ошибок я не увидел у себя в IDE.
К твоему третьему пункту, теперь и интерфейс может использоваться в кортеже в версии ts 5.1.6. Хотя и на 4.7.4 тоже можно. Откуда ты взял инфу для третьего пункта ?
1. через интерфейс можно описать функцию
2. Имплеменить типы в классах тоже можно, главное чтобы тип не был юнионом
3. Наследовать типы можно через интерсекшн (&), получается тоже самое
Ну объединение типов тоже можно легко сделать с помощью &.
Точно, спасибо за уточнение😊
++ и встаёт вопрос . Чем не наследование?
👍👏