Что такое keyof typeof в TypeScript.
HTML-код
- Опубликовано: 22 май 2024
- Разбираемся с операторами запроса ключей - keyof и запроса типа - typeof в TypeScript на реальных примерах. А так же, какую пользу можно извлечь из использования этих двух операторов вместе. В основе keyof лежат литеральные типы, с них мы и начнем.
00:00 - Литеральные типы как основа keyof
01:09 - Запрос ключей keyof
02:08 - keyof при работе с классами
02:55 - typeof в JavaScript и в TypeScript
04:04 - keyof typeof вместе
04:41 - Используем с enum
05:50 - Пример использования с валидацией формы
Больше примеров можно найти в видео о дженериках: • Дженерики в TypeScript...
Приятного просмотра! Буду благодарен за поддержку в виде комментария и лайка!
👉 Менторство и поддержка: / wisejs
✔️ Если хочешь изучать программирование со мной, не забудь подписаться :)
ruclips.net/channel/UCOxq...
✔️ Мой телеграм канал: t.me/joinchat/RVq-cmt6n1SJRS7Z
#typescript #тайпскрипт #keyoftypeof #keyof #typeof #enum
Для каких целей используете данные операторы?
Материал просто бомаба! Чел я не знаю куда ты пропал, но надеюсь с тобой все в порядке! ВЕРНИСЬ УМОЛЯЮ!
Видео просто СУПЕР!!! Максим,вы продолжаете радовать нас таким же великолепным,как и раньше,контентом,как у вас это получается??? Огромное спасибо за крутой ролик да ещё и без рекламы!👍👍👍👍👍👍👍
Thanks for the tutorial friend.
It's definitely one of the best on the internet.
Да, реально помогает лучше и глубже понять keyof, typeof, спасибо большое )
Твои видосы по ts на вес золота) спасибо 🤝
теперь понял. спасибо
Отличное видео для понимания keyof и typeof😊. Спасибо автору!
шикарное видео/объяснение/подача, спасибо
И вот только после вашего видео я начал понимать что происходит! Спасибо)
Спасибо, великолепная подача, наглядные примеры!
Спасибо, полезное видео! Особенно понравилось применение с женериками
Хороший урок, спасибо за труд!
Просто и доступно! Респект!
Круто спасибо за эту серию видео, прям очень актуально
Красава! Коротко и ясно!
Спасибо тебе добрый человек за столь доступный и понятный материал!
Лайк и подписка в копилку.
+100500 тебе в карму братец)
Спасибо за крутое объяснение!
Спасибо!
Очень мощно
Спасибо з подробные видео 👍В пакете ngrx используются довольно заковыристые типы дженериков. У Алекса Окрушко есть одно видео с разбором с Харьковского митапа. Но было бы интересно послушать больше видео с разбором типов из ngrx
благодарочка
Классное видео. Объясните пожалуйста почему в конце lol Boolean, тогда как в нем строка kek? Я понимаю что это то что возвращает функция, но потерял нить на “kek”. Спасибо
Автор спасибо за простое и понятное объяснение, супер! Подскажи пожалуйста что означает запись [key in keyof typeof formData]: boolean. Как он итерирует массив, или как это называется когда внутри массива есть key in ... ? Хочу почитать про это
То не массив. Это запись объекта с динамическими ключами.
топ!
Можете объяснить , что это за запись такая "declare function" ? Гугл совпадений не нашел. Это по типу интерфейсов , задаешь сигнатуру функции и должен ее реализовать и возвратить объект с булевым значением? .А то компиллер не ругается на запись, а в браузере пишет что validate is not defined
3:18 а почему ты там только объект увидел? Там ведь и string и number и еще полно всего
Thanks for your video. It is awesome!
Can you agree with these?
// 'type', 'interface', and the result of 'typeof' are types -> they cannot be used for console.log(SomeType) or for typeof SomeType;
// 'enum' and 'class' are also types but can be used as a value for console.log(SomeType) due to toString() representation and for typeof SomeType;
// everything else is considered a value;
// typeof
// in any declaration, typeof works only for values or 'enum' and 'class' types;
// in a type declaration (type types = ...) typeof autodetects the type with an internal structure;
// in a value declaration (const types = ...) on 'enum' typeof has internal representation as 'object';
// in a value declaration (const types = ...) on 'class' typeof has internal representation as 'function';
// in a value declaration (const types = ...) on values it works as in plain javascript;
// keyof
// keyof works only for type declaration (type keys = ...) and only with types: 'type', 'interface', 'enum', 'class', and the result of typeof;
// keyof on 'type' -> returns internal representation of 'type' object ("toString", ...) -> useless;
// keyof on 'interface' -> returns public non-static properties and methods names;
// keyof on 'enum' -> returns keys;
// keyof on 'class' -> returns public non-static properties and methods names;
// keyof on typeof 'class' returns static keys and 'prototype';
// keyof on values by using the result of typeof (keyof typeof SomeValue;
// to get the keys for value declarations (const keys = ...) we use Object.keys(SomeValueOrType) both for values and types;
как тут не лайкнуть???
Как я понял typeof работает с переменными, а keyof с типами + классами)
А не лучше описать ValidationResult как Record
Да, можно и так 👍
Я не понимаю, зачем использовать interface в typescript? Если можно обойтись одним type.
Все же, между ними есть разница, хоть и не значительная. На канале есть подробное видео об этом.
Почитай про untility типы, такие как Partial, Omit, Required и другие, и все станет на свои места