No video

TypeScript #10 Общие типы (Generic)

  Рет қаралды 41,005

webDev

webDev

Күн бұрын

#YauhenK #webDev #TypeScript
Всех приветствую в курсе «TypeScript».
В данном видеокурсе мы с вами рассмотрим возможности языка строгой типизации - TypeScript. Разберём его основные фишки и ключевые отличия от JavaScript. Изучим такие понятия, как перечисления (Enum), интерфейсы, пространства имён. Рассмотрим набор нативных утилит, которые предоставляет сам язык.
✒ Репозиторий курса:
✔ github.com/Yau...
✒ Полезные ссылки:
✔ TypeScript (документация): www.typescript...
✔ Sandbox (песочница): www.typescript...
✔ Typescript Utils (утилиты): www.typescript...
✒ Полный список готовых и планируемых курсов:
✔ Trello: trello.com/b/R...
✒ Автор курса:
✔ KZbin: / yauhenkavalchuk
✔ Instagram: / yauhenkavalchuk
✔ Twitter: / yauhenkavalchuk
✔ VK: YauhenK...
✔ LinkedIn: / yauhenkavalchuk
✔ GitHub: github.com/Yau...
✔ VK (Группа): webdevcom
✒ Поддержать развитие канала: github.com/Yau...

Пікірлер: 92
@paavalijarvinen3293
@paavalijarvinen3293 Жыл бұрын
Чётко и без воды всё объяснил. Лайк
@YauhenKavalchuk
@YauhenKavalchuk Жыл бұрын
Спасибо
@sscorpio2006
@sscorpio2006 2 жыл бұрын
уже несколько месяцев пользуюсь ТС но только теперь до конца понял - (Generic). Спасибо за хорошее объяснение!
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
Спасибо за отзыв
@motoshowchannel
@motoshowchannel 3 жыл бұрын
К сожалению, тема не раскрыта, простой пересказ документации. Нет ни примеров реального использования, ни узких и сложных тем по типу typeof, keyof в дженериках, условного наследования и тп. По сути мы получили "ну вот это можно использовать так: ", а зачем и почему ? зачем нужен K если можно явно указать тип number
@chingiz_mammadov
@chingiz_mammadov 3 жыл бұрын
Было бы уважительно, если бы автор ответил на этот комментарий.
@user-st2fj8rt7v
@user-st2fj8rt7v Жыл бұрын
дженерики нужны для снятия ограничения на использование типов. Из примера это очевидно - заменяем тип данных с конкретного на дженерик, и вуаля - вместо дженерика можно подставить любой тип. Если же нужно ограничить дженерик конкретным типом - числом или строкой.. или чем то еще, то дженерик экстендит тот тип данных, которым он должен быть
@kamik111
@kamik111 Ай бұрын
@@user-st2fj8rt7v а почему просто тип any не указать тогда?
@user-rn6bx8pg4g
@user-rn6bx8pg4g 3 ай бұрын
СПАСИБО!!!! Я уж думал, что никогда не разберусь, а тут 7 минут и готово!!!!
@YauhenKavalchuk
@YauhenKavalchuk 3 ай бұрын
Всегда пожалуйста
@user-ml8hn5kg9e
@user-ml8hn5kg9e Жыл бұрын
Наконец-то хоть кто-то обьяснил что такое дженерики нормально! Спасибо!!
@YauhenKavalchuk
@YauhenKavalchuk Жыл бұрын
пожалуйста
@MrM0narch
@MrM0narch 4 жыл бұрын
Вопрос, а почему не использовать в последнем случае просто намбер вместо K extends number ?
@warbine5819
@warbine5819 4 жыл бұрын
Тоже такой вопрос возник. Наверное просто пример неудачный
@anton_soldatov
@anton_soldatov 3 жыл бұрын
Можно реализовать функцию которая будет возводить в степень как один примитив так и массив с ними
@anton_soldatov
@anton_soldatov 3 жыл бұрын
То есть например класс который сможет производить операции как над единичным обьектом так и над массивом таких объектов, это может быть нужно и удобно
@alekseiv0303
@alekseiv0303 3 жыл бұрын
@@anton_soldatov Можно пример (скажем, в песочнице)?
@user-gu2lf6tr8m
@user-gu2lf6tr8m 3 жыл бұрын
потому что K это как переменная которую ты можешь подставлять, и этот вопрос отпадет если попробуешь заменить K на number
@andreyzhukov2821
@andreyzhukov2821 4 жыл бұрын
Привет, Евгений! Однозначно лайк!
@blackwood8816
@blackwood8816 3 ай бұрын
Благодарю за объяснение))
@YauhenKavalchuk
@YauhenKavalchuk 3 ай бұрын
Всегда пожалуйста
@kapta1n713
@kapta1n713 2 жыл бұрын
Где тут два лайка поставить) Уже пару раз пересмотрел))
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
👍
@sergeimochalov4588
@sergeimochalov4588 4 жыл бұрын
В плюсах эти дженерики называют шаблонами, классная вещь.
@dispeltr1183
@dispeltr1183 4 жыл бұрын
Оо я ждал этого урока! Спасибо!
@DerekGaming
@DerekGaming 3 ай бұрын
Почему это объяснено лучше чем в яндекс практикум даже спустя 4 года?..
@YauhenKavalchuk
@YauhenKavalchuk 3 ай бұрын
Понятия не имею)
@user-mu4my8fq2e
@user-mu4my8fq2e 2 жыл бұрын
Моё почтение!
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
Благодарю
@vanibron
@vanibron 3 жыл бұрын
Евгений, спасибо за курс, но вынужден согласиться с другими комментаторами - объяснение так себе. Пришлось переключиться и поискать более конкретное и внятное объяснение. Если с английским не совсем туго, то рекомендую kzbin.info/www/bejne/pIfMdqSmnNyrfqc
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Я не часто использовал generic типы, поэтому рассказал, как сам понял. Соглашусь, что можно было подробнее, но уж как есть
@andreinebolei
@andreinebolei 4 жыл бұрын
Спасибо, очень толковое объяснение, теперь много стало понятнее.
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
Пожалуйста)
@mykhailokurta8856
@mykhailokurta8856 4 жыл бұрын
супер контент, роботаю React Native Developerom, только месяц, как раз начинаем писать на TS проект, курс очень помогает , а то пишеш что-то и сидиш вроде зделаеш а до конца как роботает непонимаеш))))
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
👍
@UnrealTabby
@UnrealTabby 3 жыл бұрын
Парень, извини, но что у тебя с мягкими знаками в окончаниях глаголов? Я хоть и технарь, но, читаю и кровь из глаз идёт ))
@talivel118
@talivel118 2 жыл бұрын
@@UnrealTabby ahaha, 8class, toje idet krov:;)
@user-paint-alexandra
@user-paint-alexandra 4 жыл бұрын
Эх, вопрос у меня только один. Зачем было придумывать TypeScript с типизацией переменных, а потом искать, как эти правила обойти: any, generics...
@user-tw3oe1nf5g
@user-tw3oe1nf5g 4 жыл бұрын
TypeScript придуман для экономии времени разработчика, подробных сообщениях об ошибках, контролем над приложением и тд. А это не "обход правил", а очень практичная гибкость данного инструмента, раньше тоже считал что такая себе тема этот ts, но после набитых шишек понимаю что годнота)
@chkpg4317
@chkpg4317 3 жыл бұрын
Спасибо большое!
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Пожалуйста 👍
@edgeofeternity85
@edgeofeternity85 Жыл бұрын
Зачем нам использовать способ K extends number, если мы просто в конструкторе можем потом указать public age: number вообще не использую тип К, если он будет только числом
@YauhenKavalchuk
@YauhenKavalchuk Жыл бұрын
Это было чисто для примера
@O-L-1986
@O-L-1986 3 жыл бұрын
Спасибо
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
пожалуйста
@taran_dm
@taran_dm 2 жыл бұрын
Спасибо! Есть вопросы: 1. В песочнице TS не работает синтаксис ES6? Ошибка при создании generic типа в виде стрелочной функции. 2. Зачем дженерик типу давать строгую типизацию для аргумента (K extends number), когда можно использовать строгую типизацию без дженерик типа в данном случае?
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
1. Должно работать, возможно не включена какая-то настройка 2. Это было чисто для примера
@taran_dm
@taran_dm 2 жыл бұрын
@@YauhenKavalchuk Понял. Спасибо.
@andreyn788
@andreyn788 2 жыл бұрын
@@taran_dm const getter = (data:T):T=>data
@horhegarsia4221
@horhegarsia4221 Жыл бұрын
6:53 не очень понял, зачем делать дженерик наследуемый от number, если нам нужен только тип number. Проще сразу написать в конструкторе public name: T, public age: number, ведь K всё равно не может быть ни чем, кроме number
@YauhenKavalchuk
@YauhenKavalchuk Жыл бұрын
Это было нужно в качестве примера
@horhegarsia4221
@horhegarsia4221 11 ай бұрын
@@YauhenKavalchuk нужны примеры из реальной практики, а не пример ради примера, где нет логики.
@horhegarsia4221
@horhegarsia4221 11 ай бұрын
@@YauhenKavalchuk вы говорите как это делать, а зачем это делать люди не поймут, и будут писать лишние дженерики
@user-mf5cc6nk9k
@user-mf5cc6nk9k 2 күн бұрын
А зачем писать "K extends number" если это то же самое что и просто number? Или есть разница какая-то?
@YauhenKavalchuk
@YauhenKavalchuk Күн бұрын
Всё верно. Это было чисто для примера
@sergioostanioni5390
@sergioostanioni5390 4 жыл бұрын
Не стал бы говорить о том, что стрелочные функции (arrow function expression) - это ES6 синтаксис, а обычные функции(function declaration statement) ES5. Они как бы не одно и тоже - во-первых, в стандарте ES6 присутствует и function (function declaration statement). Посему можно просто говорить о стрелочных функциях (arrow function expression) и function declaration statement + для полноты можно было добавить function definition expression. Если ничего не перепутал.
@user-bh6mc8pd8g
@user-bh6mc8pd8g 4 жыл бұрын
большинство людей не знает всех именований объявлений функций )
@skif3161
@skif3161 Жыл бұрын
душнила
@dimageorgiev5798
@dimageorgiev5798 4 жыл бұрын
отлично спасибо ! А вы могли бы записать курс по алгоритмам например ?
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
В планах есть, но когда приступлю к записи пока не знаю
@dimageorgiev5798
@dimageorgiev5798 4 жыл бұрын
@@YauhenKavalchuk спасибо за ваш труд !
@olgamazurenko8142
@olgamazurenko8142 4 жыл бұрын
Четко и по делу. Спасибо!
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
Пожалуйста
@user-ct8dn5xj3o
@user-ct8dn5xj3o Жыл бұрын
почему в последнем примере вместо K extends number нельзя написать просто number?
@YauhenKavalchuk
@YauhenKavalchuk Жыл бұрын
Это нужно чисто для примера
@CoryClark-jw3ij
@CoryClark-jw3ij Жыл бұрын
👍
@YauhenKavalchuk
@YauhenKavalchuk Жыл бұрын
👍
@gameit1477
@gameit1477 Жыл бұрын
Ребята, я не понял, а в чем разница между дженерик типом и типом any? Я так же могу указать в аргументах any и аргументы будут принимать любой тип
@YauhenKavalchuk
@YauhenKavalchuk Жыл бұрын
any - это любой тип (по сути данный вариант просто убирает весь смысл типизации). Generic - это гибкий, конфигурируемый вариант типа
@aleksandrgradov7859
@aleksandrgradov7859 4 жыл бұрын
generic можно задавать только классам и функциям? например для массива или объекта у меня не получилось: const arr: = [] const obj: = {}
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
Там другой синтаксис, Array. В предыдущих уроках можно найти эту информацию
@dmitriystoyanov933
@dmitriystoyanov933 2 жыл бұрын
Вот вроде понятно все в уроках, работаю с ТС уже 4 месяца, а до сих пор тимлида пингую, трудно правильно дженерики писать.. Видимо нужны годы опыта, хз.
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
Согласен
@akuma8865
@akuma8865 3 жыл бұрын
Можно ли смешивать generic с интерфейсом/типом? Если да, то можно маленький пример?)
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Если честно, не сталкивался с таким, не могу ничего сказать
@akionka
@akionka 4 жыл бұрын
Golang: не понял
@iGotton
@iGotton 4 жыл бұрын
+
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
👍
@sarvarkuchimbayev4358
@sarvarkuchimbayev4358 2 ай бұрын
nic nie rozumiju
@YauhenKavalchuk
@YauhenKavalchuk 2 ай бұрын
🤷‍♂️
@Bartosh-gd3yq
@Bartosh-gd3yq Жыл бұрын
Абышто
@YauhenKavalchuk
@YauhenKavalchuk Жыл бұрын
🤔🤷‍♂️
@nikitagorbunov5507
@nikitagorbunov5507 3 жыл бұрын
Автор просит оставить комментарий если что то не понятно, но на вопросы комментаторов не отвечает...
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Не всегда есть на это время
@lesters
@lesters Жыл бұрын
странно что так вскользь рассказали про type они же тоже могут экстендить друг друга, для них можна юзать условие или |, в отличии от интерфейса имена должны быть уникальными, в интерфейсе это не обязательно они тогда смерджаться.
@user-iz9dz2gh9j
@user-iz9dz2gh9j 3 жыл бұрын
Кратко и ясно, спасибо! Лайк
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Пожалуйста)
TypeScript #11 Декораторы (Decorators)
7:42
webDev
Рет қаралды 42 М.
TypeScript generics или универсальный типы, обобщения
23:51
Михаил Непомнящий
Рет қаралды 34 М.
At the end of the video, deadpool did this #harleyquinn #deadpool3 #wolverin #shorts
00:15
Anastasyia Prichinina. Actress. Cosplayer.
Рет қаралды 15 МЛН
PEDRO PEDRO INSIDEOUT
00:10
MOOMOO STUDIO [무무 스튜디오]
Рет қаралды 24 МЛН
Пройди игру и получи 5 чупа-чупсов (2024)
00:49
Екатерина Ковалева
Рет қаралды 4,7 МЛН
Великовозрастный программист. Стоит ли идти в IT в 40 лет
8:17
Дилетант широкого профиля
Рет қаралды 13 М.
Learn TypeScript Generics In 13 Minutes
12:52
Web Dev Simplified
Рет қаралды 260 М.
TypeScript Generics are EASY once you know this
22:21
ByteGrad
Рет қаралды 135 М.
Typescript - Generics, Index Access Types, Keyof на простом примере
9:01
PurpleSchool | Anton Larichev
Рет қаралды 8 М.
Просто о SOLID (Принципы SOLID)
15:54
webDev
Рет қаралды 219 М.
TypeScript #12 Утилиты (Utility Types)
6:08
webDev
Рет қаралды 25 М.
At the end of the video, deadpool did this #harleyquinn #deadpool3 #wolverin #shorts
00:15
Anastasyia Prichinina. Actress. Cosplayer.
Рет қаралды 15 МЛН