Типизация функций в TypeScript
HTML-код
- Опубликовано: 27 май 2024
- Аннотации функций TypeScript, параметры и возвращаемые значения. Обработка интерфейсов и перегрузки функций.
00:00 Аннотация функций
02:51 Необязательные параметры
03:51 Параметры по умолчанию
05:19 Непредсказуемое число параметров
06:08 Интерфейсы и параметры функций
10:45 Перегрузка функций
__
Мои курсы по вебу с купонами:
✅ mishanep.com/
📢 Поддержка канала:
/ mishanep
www.tinkoff.ru/rm/nepomnyasch...
paypal.me/mishanep
Отличный плейлист по Typescript! Спасибо за ваши видео 🤍
Михаил, если есть такая возможность, используйте, плиз, тёмную тему в редактора:) Думаю, таких оч много, кто по ночам смотрит.
За материал огромная благодарность, всё очень доступно объясняете, мне нравится.
а мне наоборот заходит светлая тема
Недавно делал опрос на эту тему)) вероятно буду чередовать, последние видео были с тёмной темой
@@mishanep предлагаю чередовать так - одно видео про что-нибудь ненужное в светлой теме, а другие 100 полезных видео в черной теме)
Очень круто! Спасибо
спасибо большое за труд 🔥
спасибо за понятное изложение материала ☺
Понятное объяснение материала! Списки отличаются от кортежей теперь усвоил
Михаил, ты красава, спасибо за качественный контент =)
Спасибо большое!!!
Спасибо!
Все-таки в основной функции (после перегрузок) необходимо полностью указывать и типы параметров(у Вас даже редактор отметил параметр, как недочет) и типы возвращенных значений из функции(указывать any в TS плохо). А в перегрузках расписывать частные случаи работы функции. В документации и различных примерах в интернете именно так, да и по логике это так. Основная функция супер полная с различными входными параметрами и выводами , а перегрузки в виде документации.
Спасибо)
А почему pickCard позволяет тип возвращаемого значения any(13:48), когда до этого строго описаны возвраты либо number либо object ?
Желтые скобки плохо видно, но полезное видео!
Видео помогло правильно типизировать колбеки. Только в последнем примере мне не понравилась запись x.lenght, где х - объект
х - массив объектов
spasibo
спасибо за плотный разбор.
вопрос такой - типизация нужна для красоты или все же есть оптимизация памяти как в С?
Об оптимизации речь не идёт. Здесь больше про надёжность приложения, особенно при командной разработке.
разве overload сигнатуры обязаны иметь одинаковое число параметров?
даже в оф. документации есть пример с разным числом параметров
Нет, не обязаны.
Подскажите перегрузки можно создавать только через function declaration ? условно const foo = (x: string) => string, const foo = (x: number) => number и т. п . работать же не будет?
На практике встречал только в function declaration и в методах классов.
@@mishanep Thanks !🙂
Спасибо! а чем псевдоним отличается от алиаса ? а давайте ещё по тс несколько видео, про Record , Omit, ......... Отлично получается!
Псевдоним и алиас - это одно и то же, синонимы.
Скажите пожалуйста, то что в этом плейлисте есть - это весь TS? А то видел даже буткемпы по TS. Если тут уже все изложено, то что тогда в буткемпах рассказывают так долго)
Нет, конечно. Не весь. Язык постоянно развивается, в нем появляются новые фишки. Плюс много узких мест есть. Но по большому счету - в плей-листе предлагается фундамент. К нему обязательно нужны еще утилиты (никак не запишу по ним видео), ну и опыт конечно. В процессе работы с кодом будут возникать вопросы разного рода. Кроме того, под конкретный инструмент, вроде того же Реакта, понадобится изучать дополнительные типы и разбираться как с ними работать.
Все шло хорошо, но вот здесь началось прям сложновастенько с перегрузами этими, планирую через время ещё раз пересмотреть надеюсь что-то измениться в моих нейронных связях ☺️
Миша лев
🦝
попущ в шахматах
Михаил, а история с деструктуризацией данных (10:20) -- это ж ведь баг тайпскрипта? Есть какой-то вариант его избежать, при этом сохраняя использование тайпскрипта (естественно) и деструктуризацию параметров? Или может его уже пофиксили?
Я так понял, что оно специально так сделано. Мотивация такого поведения - если мы создаем объект прямо в момент вызова функции, то он больше нигде использовать не будет. А значит нет нужды записывать к него лишние свойства. Если вы в переменной храните объект, поведение другое.
@@mishanep понял, спасибо