Спасибо за видео. Что можно улучшить: 1) Привести практический пример, где без интерфейсов не обойтись. Иначе непонятно зачем они вообще нужны. 2) На 3:11 говорится про проверку на лишнее свойство в интерфейсе (компилятор выкинет ошибку), однако на 5:05 , когда речь про классы, то уже можно добавлять неограниченное кол-во свойств, которые не описаны в интерфейсе. Обучаюсь, пока вводит в ступор 3) Еще показалось что самое подходящее слово для понимания, что такое интерфейс - это шаблон, по которому должны создаваться объекты. Вроде оно не звучало в видео
Спасибо за информативный урок! От себя добавлю, что интерфейсы с одинаковыми названиями "склеиваются" и если имплементировать такой тип интерфейса, то придётся реализовать все сущности внутри данных интерфейсов
спасибо за видео! только не понял чем интерфейсы мощнее типов) следующий код также прекрасно работает: type NameType = { readonly name: string; }; type AgeType = { readonly age: number; }; class Person implements NameType, AgeType { readonly age: number; readonly name: string; constructor(name: string, age: number) { this.age = age; this.name = name; } } const John = new Person('John', 30); console.warn(John); ----- типы тоже можно расширять через & и | (читай наследовать) и, как мы видим выше, имплементировать
Зачем создавать класс с данными, он же является шаблоном, а не объектом. На основании класса должна быть возможность создавать инстансы с разными данными. Интерфейс и класс это должны быть абстракции. Или я чего-то не понимаю?
Нехватает обьяснения что интерфейс даёт возможность создать переменную Some типа интерфейс SomeIntf, которая может принимать в себя все инстансы классов, которые реализуют интерфейс SomeIntf Также не хватает про интерфейс экстенд класс. у которого поля приват и протектед Пример кода ниже interface ClockInterface { currentTime: number; }
class Clock1 implements ClockInterface { currentTime: number; constructor() { this.currentTime = 10; } } class Clock2 implements ClockInterface { currentTime: number; constructor() { this.currentTime = 20; } } let zSome : ClockInterface = new Clock1(); console.log(zSome); zSome = new Clock2(); console.log(zSome); Также не раскрыта тема тайпкаста ссылочных типов данных, например если мы в Клок1 мы добавим свое лишее любое поле, то в зСоме его не будет этого лтшнего полч, происходит ссужение ссылочного типа потому что Клок1 теряет функциональность после инстанцирования в зСоме
Интерфейсы не мощнее типов, всё как раз наоборот. Тип это мощный универсальный инструмент, а интерфейс инструмент узкоспециализированный. Он немного удобнее в своих задачах, но фич имеет меньшее.
... статик метод класса как описать в интерфейсе? гуглил-гуглил. ничего не нашел толкового и простого.... Всё какието - вундервафли через дженерики и декораторы...
Спасибо за видео. Что можно улучшить:
1) Привести практический пример, где без интерфейсов не обойтись. Иначе непонятно зачем они вообще нужны.
2) На 3:11 говорится про проверку на лишнее свойство в интерфейсе (компилятор выкинет ошибку), однако на 5:05 , когда речь про классы, то уже можно добавлять неограниченное кол-во свойств, которые не описаны в интерфейсе. Обучаюсь, пока вводит в ступор
3) Еще показалось что самое подходящее слово для понимания, что такое интерфейс - это шаблон, по которому должны создаваться объекты. Вроде оно не звучало в видео
Интерфейсы вообще везде нужны)
ну просто максимально хорошее изложение материала!
Спасибо большое за отзыв
Спасибо за информативный урок!
От себя добавлю, что интерфейсы с одинаковыми названиями "склеиваются" и если имплементировать такой тип интерфейса, то придётся реализовать все сущности внутри данных интерфейсов
Всегда пожалуйста. Спасибо за уточнение
Отлично! Спасибо за труд!
Спасибо за отзыв
Отлично преподнес материал!
Спасибо за уроки💙
Пожалуйста
отличаня подача материала, жаль я в начале изучения ts не наткнулся на ваш канал :)
Спасибо за отзыв
как успехи
@@ДанилДмитриев-я5мя его знакомый, он погиб.
@@swaxshow8404 где доказательства? приведи доказательства хоть какие-нибудь
Спасибо за уроки)👍
Спасибо за отзыв
просто то что нужно !
Супер
👍
Yauhen - читается как Яухен, ну или более понятно - Юхен))) Я думал вы швед))) За уроки спасибо, очень полезные
Пожалуйста)
Яхуел от этой темы с интерфейсами, ладно разберемся на практике)
В общем и целом )))
- А. Щербаков
🤣
спасибо за уроки, четко все. не скучно. скучать не успеваю ахах
Пожалуйста
как успехи
@@ДанилДмитриев-я5м можно вопрос по точнее?
@@react_js как с ts дела?
спасибо, очень информативно
Пожалуйста
Спасибо ❤
Пожалуйста
Кайф!
Спасибо
extremely cool) nice going
Спасибо)
Спасибо
Пожалуйста
Good video, thanks
You’re welcome
В примере type User { name: string ... - между User и { должно быть = иначе Parsing error: '=' expected.
👍
Спасибо большое за видео. Как то пропустил для себя наследование в интерфейсах, …
Пожалуйста
спасибо за видео! только не понял чем интерфейсы мощнее типов)
следующий код также прекрасно работает:
type NameType = {
readonly name: string;
};
type AgeType = {
readonly age: number;
};
class Person implements NameType, AgeType {
readonly age: number;
readonly name: string;
constructor(name: string, age: number) {
this.age = age;
this.name = name;
}
}
const John = new Person('John', 30);
console.warn(John);
-----
типы тоже можно расширять через & и | (читай наследовать)
и, как мы видим выше, имплементировать
Можете погуглить эту тему. Там целый список отличий. Но по факту, разница для обычных проектов практически не заметна
немного опечатка type должен быть
type User = {
name: string
age: number
}
👍
Зачем создавать класс с данными, он же является шаблоном, а не объектом. На основании класса должна быть возможность создавать инстансы с разными данными. Интерфейс и класс это должны быть абстракции. Или я чего-то не понимаю?
1:14 type User {} забыл =
Забыл...
Нехватает обьяснения что интерфейс даёт возможность создать переменную Some типа интерфейс SomeIntf, которая может принимать в себя все инстансы классов, которые реализуют интерфейс SomeIntf
Также не хватает про интерфейс экстенд класс. у которого поля приват и протектед
Пример кода ниже
interface ClockInterface {
currentTime: number;
}
class Clock1 implements ClockInterface {
currentTime: number;
constructor() {
this.currentTime = 10;
}
}
class Clock2 implements ClockInterface {
currentTime: number;
constructor() {
this.currentTime = 20;
}
}
let zSome : ClockInterface = new Clock1();
console.log(zSome);
zSome = new Clock2();
console.log(zSome);
Также не раскрыта тема тайпкаста ссылочных типов данных, например если мы в Клок1 мы добавим свое лишее любое поле, то в зСоме его не будет этого лтшнего полч, происходит ссужение ссылочного типа потому что Клок1 теряет функциональность после инстанцирования в зСоме
Спасибо за дополнение!
Как можно с помощью тайпскрипта приписать css class строке ну или обьекту
Это есть в курсе React + TypeScript
А какой разница между interface и abstract?
Можете тут посмотреть ruclips.net/video/VjGdjqyXbhg/видео.html
как минимум пишутся по разному ахах
Интерфейсы не мощнее типов, всё как раз наоборот. Тип это мощный универсальный инструмент, а интерфейс инструмент узкоспециализированный. Он немного удобнее в своих задачах, но фич имеет меньшее.
+
👍
... статик метод класса как описать в интерфейсе? гуглил-гуглил. ничего не нашел толкового и простого.... Всё какието - вундервафли через дженерики и декораторы...
¯\ _(ツ)_/¯
Здравствуйте, выскажитесь пожалуйста к Дню Победы над немецко-нацистским захватчиком.
а как эта тема относится к тематике канала?
@@СергійБереза-ъ7с я прошу прощение, а какое отношение имеет пшеница к металопластику?