Что такое 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

Комментарии • 36

  • @wisejs
    @wisejs  2 года назад

    Для каких целей используете данные операторы?

  • @fergussawyer
    @fergussawyer Год назад +2

    Материал просто бомаба! Чел я не знаю куда ты пропал, но надеюсь с тобой все в порядке! ВЕРНИСЬ УМОЛЯЮ!

  • @romanpohribniak8471
    @romanpohribniak8471 2 года назад +4

    Видео просто СУПЕР!!! Максим,вы продолжаете радовать нас таким же великолепным,как и раньше,контентом,как у вас это получается??? Огромное спасибо за крутой ролик да ещё и без рекламы!👍👍👍👍👍👍👍

  • @garikmelqonyan6011
    @garikmelqonyan6011 Год назад +1

    Thanks for the tutorial friend.
    It's definitely one of the best on the internet.

  • @gritsienkooleg3447
    @gritsienkooleg3447 Год назад

    Да, реально помогает лучше и глубже понять keyof, typeof, спасибо большое )

  • @fidgetmania
    @fidgetmania Год назад

    Твои видосы по ts на вес золота) спасибо 🤝

  • @pherum
    @pherum Месяц назад

    теперь понял. спасибо

  • @user-xe7sp3pr7t
    @user-xe7sp3pr7t 2 года назад +2

    Отличное видео для понимания keyof и typeof😊. Спасибо автору!

  • @vadikot
    @vadikot Год назад

    шикарное видео/объяснение/подача, спасибо

  • @melodystic
    @melodystic 2 года назад

    И вот только после вашего видео я начал понимать что происходит! Спасибо)

  • @nikolaynoda1791
    @nikolaynoda1791 Год назад

    Спасибо, великолепная подача, наглядные примеры!

  • @Ushakov.M
    @Ushakov.M 2 года назад

    Спасибо, полезное видео! Особенно понравилось применение с женериками

  • @dimalukashenko4865
    @dimalukashenko4865 Год назад

    Хороший урок, спасибо за труд!

  • @SergAlexson
    @SergAlexson 2 года назад

    Просто и доступно! Респект!

  • @dmitrykorovin4356
    @dmitrykorovin4356 2 года назад

    Круто спасибо за эту серию видео, прям очень актуально

  • @daniyarzhanakhmetov7741
    @daniyarzhanakhmetov7741 2 года назад

    Красава! Коротко и ясно!

  • @AibekSadraliev
    @AibekSadraliev Год назад

    Спасибо тебе добрый человек за столь доступный и понятный материал!
    Лайк и подписка в копилку.
    +100500 тебе в карму братец)

  • @lovikuanyshev
    @lovikuanyshev Год назад

    Спасибо за крутое объяснение!

  • @HoshiramaSensei
    @HoshiramaSensei 2 года назад

    Спасибо!

  • @user-yu8vu4dc3k
    @user-yu8vu4dc3k 2 года назад

    Очень мощно

  • @TheKievsash
    @TheKievsash 2 года назад

    Спасибо з подробные видео 👍В пакете ngrx используются довольно заковыристые типы дженериков. У Алекса Окрушко есть одно видео с разбором с Харьковского митапа. Но было бы интересно послушать больше видео с разбором типов из ngrx

  • @Dostoevsky2012
    @Dostoevsky2012 Год назад

    благодарочка

  • @mvader93
    @mvader93 Год назад

    Классное видео. Объясните пожалуйста почему в конце lol Boolean, тогда как в нем строка kek? Я понимаю что это то что возвращает функция, но потерял нить на “kek”. Спасибо

  • @fgood574
    @fgood574 2 года назад

    Автор спасибо за простое и понятное объяснение, супер! Подскажи пожалуйста что означает запись [key in keyof typeof formData]: boolean. Как он итерирует массив, или как это называется когда внутри массива есть key in ... ? Хочу почитать про это

    • @wisejs
      @wisejs  2 года назад +2

      То не массив. Это запись объекта с динамическими ключами.

  • @user-vz5go9zz7v
    @user-vz5go9zz7v 2 года назад

    топ!

  • @zergzerg4844
    @zergzerg4844 3 месяца назад

    Можете объяснить , что это за запись такая "declare function" ? Гугл совпадений не нашел. Это по типу интерфейсов , задаешь сигнатуру функции и должен ее реализовать и возвратить объект с булевым значением? .А то компиллер не ругается на запись, а в браузере пишет что validate is not defined

  • @user-uz8qg6hf8p
    @user-uz8qg6hf8p Год назад

    3:18 а почему ты там только объект увидел? Там ведь и string и number и еще полно всего

  • @yaroslavzdanovskiy5704
    @yaroslavzdanovskiy5704 2 года назад

    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;

  • @erikmaxim9923
    @erikmaxim9923 Год назад

    как тут не лайкнуть???

  • @user-te9ci1tx4x
    @user-te9ci1tx4x Год назад

    Как я понял typeof работает с переменными, а keyof с типами + классами)

  • @user-vu6hn4ul2i
    @user-vu6hn4ul2i 2 года назад

    А не лучше описать ValidationResult как Record

    • @wisejs
      @wisejs  2 года назад

      Да, можно и так 👍

  • @Akira-cy7su
    @Akira-cy7su 2 года назад

    Я не понимаю, зачем использовать interface в typescript? Если можно обойтись одним type.

    • @wisejs
      @wisejs  2 года назад

      Все же, между ними есть разница, хоть и не значительная. На канале есть подробное видео об этом.

    • @nexgenua
      @nexgenua 2 года назад

      Почитай про untility типы, такие как Partial, Omit, Required и другие, и все станет на свои места