Typescript новая фича которую так ждали

Поділитися
Вставка
  • Опубліковано 7 сер 2024
  • 00:00 - интро
    00:38 - шоу кейс)
    03:01 - эндинг
    Ссылочка на тг канал: t.me/tokarev_gregor
    Я создал сервер в дискорде, чтобы было место для объединения инициативных ребят, залетай: / discord
  • Наука та технологія

КОМЕНТАРІ • 14

  • @Selavy82
    @Selavy82 21 день тому +3

    костыли... системой типов это решаться должно. undefined должен быть потомком всех типов, тогда и union специалььный для него не нужен. Попробуйте Elm - надеюсь, там-то хоть по-нормальному сделано.

  • @jgkdmdevienjjgg8866
    @jgkdmdevienjjgg8866 18 днів тому +1

    filter((itm): itm is number => itm !== undefined)
    Можно вот так в старом тайпскрипте. Инлайновый typeguard
    Генерик версия для особо упоротых: itm is NonNullable

  • @YuriiLebid-op1xv
    @YuriiLebid-op1xv 27 днів тому +1

    Спасибо, полезно

  • @BOCbMOU
    @BOCbMOU 21 день тому +1

    Автор никогда не слышал про тайп гуард? В чём проблема его добавить в функцию фильтра? Да, это условно лишний код, но и ситуация где это надо редко встречается.

  • @banzaika
    @banzaika Місяць тому +1

    капец ты быстро обрастаешь)

  • @kirillgimranov4943
    @kirillgimranov4943 29 днів тому +5

    В чем фича то?
    Фильтрация происходит все же в рантайме, компайл-тайм об этом знать не должен

    • @VitalyVasilega
      @VitalyVasilega 27 днів тому +2

      Автор всё доходчиво объяснил и показал! Раньше действительно была проблема, что TS не отслеживал что мы фильтруем и тип, который он вычислил вначале использовался везде. Это заставляло вставлять дополнительные проверки, чтобы можно было обратиться к объекту. Теперь с этим проблем не должно быть.

    • @kirillgimranov4943
      @kirillgimranov4943 27 днів тому +2

      @@VitalyVasilega это должна быть проблема не языка, а статических линтеров
      Как компилятор угадает рантаймовый фильтр? В сигнатурах типов указываются все ограничения, остальное - линтинг

    • @MaxSvargal
      @MaxSvargal 19 днів тому

      @@kirillgimranov4943 боже мой, ts это не язык, а надстройка и статический анализатор. Как угадать? Угадывать не нужно, всё видно по AST.
      Почему-то Elm может, ReScript (OCaml) может, а в ts только сейчас осилили.

    • @jgkdmdevienjjgg8866
      @jgkdmdevienjjgg8866 18 днів тому

      @@kirillgimranov4943 C такой логикой type narrowing существовать не должен, а он есть. Тайпскрипт выводит типы и из того что написано уже заранее понятно что там undefined на выходе быть не должно. Фича в том что тайпскрипт стал лучше выводить типы, как я понимаю, а это самый наболевший пример, который очень часто проявляется. Тайпскрипт это в каком то смысле линтер и есть. Есть стадия компиляции (транспиляции), а есть стадия тайпчекинга. И компиляцию можно запустить без тайпчекинга

    • @gh8499
      @gh8499 День тому

      @@kirillgimranov4943 а в чем сложность угадать? ты же знаешь что будет возвращать этот фильтр

  • @daishinkan12
    @daishinkan12 24 дні тому +1

    Всегда игнорировал такое предупреждение. Это только начинающие обращаются внимание на такое

  • @loa2395
    @loa2395 28 днів тому

    Капец ты долгий, у purpleschool давно уже про это рассказано и намного лучше