TypeScript #9 Интерфейсы (Type Interface)
Вставка
- Опубліковано 6 тра 2020
- #YauhenK #webDev #TypeScript
Всех приветствую в курсе «TypeScript».
В данном видеокурсе мы с вами рассмотрим возможности языка строгой типизации - TypeScript. Разберём его основные фишки и ключевые отличия от JavaScript. Изучим такие понятия, как перечисления (Enum), интерфейсы, пространства имён. Рассмотрим набор нативных утилит, которые предоставляет сам язык.
✒ Репозиторий курса:
✔ github.com/YauhenKavalchuk/ty...
✒ Полезные ссылки:
✔ TypeScript (документация): www.typescriptlang.org
✔ Sandbox (песочница): www.typescriptlang.org/play/i...
✔ Typescript Utils (утилиты): www.typescriptlang.org/docs/h...
✒ Полный список готовых и планируемых курсов:
✔ Trello: trello.com/b/R6rD7qq8
✒ Автор курса:
✔ UA-cam: / yauhenkavalchuk
✔ Instagram: / yauhenkavalchuk
✔ Twitter: / yauhenkavalchuk
✔ VK: YauhenKavalchuk
✔ LinkedIn: / yauhenkavalchuk
✔ GitHub: github.com/YauhenKavalchuk
✔ VK (Группа): webdevcom
✒ Поддержать развитие канала: github.com/YauhenKavalchuk/yo...
Отлично преподнес материал!
просто то что нужно !
Отлично! Спасибо за труд!
Спасибо за отзыв
Спасибо за уроки)👍
Спасибо за отзыв
Спасибо за уроки💙
Пожалуйста
ну просто максимально хорошее изложение материала!
Спасибо большое за отзыв
спасибо, очень информативно
Пожалуйста
Спасибо за видео. Что можно улучшить:
1) Привести практический пример, где без интерфейсов не обойтись. Иначе непонятно зачем они вообще нужны.
2) На 3:11 говорится про проверку на лишнее свойство в интерфейсе (компилятор выкинет ошибку), однако на 5:05 , когда речь про классы, то уже можно добавлять неограниченное кол-во свойств, которые не описаны в интерфейсе. Обучаюсь, пока вводит в ступор
3) Еще показалось что самое подходящее слово для понимания, что такое интерфейс - это шаблон, по которому должны создаваться объекты. Вроде оно не звучало в видео
Интерфейсы вообще везде нужны)
extremely cool) nice going
Спасибо)
Good video, thanks
You’re welcome
Супер
👍
Спасибо ❤
Пожалуйста
Кайф!
Спасибо
спасибо за уроки, четко все. не скучно. скучать не успеваю ахах
Пожалуйста
как успехи
@@user-th4qi8iv3q можно вопрос по точнее?
@@react_js как с ts дела?
Спасибо
Пожалуйста
отличаня подача материала, жаль я в начале изучения ts не наткнулся на ваш канал :)
Спасибо за отзыв
как успехи
@@user-th4qi8iv3qя его знакомый, он погиб.
@@swaxshow8404 где доказательства? приведи доказательства хоть какие-нибудь
Спасибо за информативный урок!
От себя добавлю, что интерфейсы с одинаковыми названиями "склеиваются" и если имплементировать такой тип интерфейса, то придётся реализовать все сущности внутри данных интерфейсов
Всегда пожалуйста. Спасибо за уточнение
Yauhen - читается как Яухен, ну или более понятно - Юхен))) Я думал вы швед))) За уроки спасибо, очень полезные
Пожалуйста)
В общем и целом )))
- А. Щербаков
🤣
Спасибо большое за видео. Как то пропустил для себя наследование в интерфейсах, …
Пожалуйста
В примере 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?
Можете тут посмотреть ua-cam.com/video/VjGdjqyXbhg/v-deo.html
как минимум пишутся по разному ахах
+
👍
Интерфейсы не мощнее типов, всё как раз наоборот. Тип это мощный универсальный инструмент, а интерфейс инструмент узкоспециализированный. Он немного удобнее в своих задачах, но фич имеет меньшее.
... статик метод класса как описать в интерфейсе? гуглил-гуглил. ничего не нашел толкового и простого.... Всё какието - вундервафли через дженерики и декораторы...
¯\ _(ツ)_/¯
Здравствуйте, выскажитесь пожалуйста к Дню Победы над немецко-нацистским захватчиком.
а как эта тема относится к тематике канала?
@@user-ir1ei2mt4f я прошу прощение, а какое отношение имеет пшеница к металопластику?