home.social

#satisfies — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #satisfies, aggregated by home.social.

fetched live
  1. Точно ли здесь нужен `any`? 13 сценариев из TypeScript-код-ревью — от `unknown` до границы приложения

    Красная волнистая линия под строкой раздражает, и самый быстрый способ её убрать — дописать any , as или ! . Компилятор замолкает, сборка зеленеет, PR уходит дальше. Вот только ошибка никуда не делась: она переехала из редактора в рантайм, поближе к пользователю. За годы ревью — чужого кода и своего — я привык читать эти три символа как сигнальную лампочку. Они почти всегда отмечают место, где тип не описан, а выключен. Иногда это осознанный и оправданный выбор. Гораздо чаще — способ не разбираться прямо сейчас, счёт за который приходит позже и другому человеку. Поэтому на code review я задаю не привычное «как затипизировать, чтобы TypeScript замолчал», а обратный вопрос: Что именно я здесь отключаю — и правда ли без этого нельзя? Веду frontend-команду, много времени провожу в чужих диффах, и про any , as и ! у нас постепенно сложился небольшой свод договорённостей для review. Из него и выросла эта статья: 13 сценариев, которые складываются в один короткий фильтр. Для каждого есть пара «плохо → хорошо» и рабочий пример на TypeScript 6 — всё можно потрогать в playground (он написан на React, но сами приёмы относятся к TypeScript в целом). Разберём any и unknown , сужение и type guards, satisfies , as const , оператор ! и валидацию данных на границе. Главная мысль: Типы — это проверяемые обещания о данных. any, а также необоснованные as T и !, позволяют компилятору принять такое обещание без доказательства. Если тип неизвестен — это unknown и сужение; если известен, но невиден компилятору — это guard, валидация или контролируемый инвариант, а не слепое утверждение.

    habr.com/ru/articles/1055944/

    #TypeScript #any #unknown #type_guards #type_assertions #narrowing #satisfies #строгая_типизация #code_review #валидация_данных

  2. Перестаем бороться с компилятором TypeScript и начинаем писать безопасный и строго типизированный код

    Система типов в TypeScript может творить чудеса, но на практике многие используют ее едва ли на десять процентов. Признайтесь, мы все хотя бы раз лепили any просто чтобы компилятор отстал и дал собрать проект. Проблема в том, что такие компромиссы рано или поздно приводят к неожиданным падениям в рантайме. В этой небольшой статье мы разберем несколько полезных практик, которые помогут писать более чистый код и будут реально отлавливать баги еще до того, как они попадут в продакшен.

    habr.com/ru/articles/1003342/

    #typescript #программирование #типы_данных #javascript #satisfies #type_guard

  3. Can't believe I'm about to share #typescript content, but version 5.0 adds support for @satisfies and @overload to #JSDoc and that's p cool 👍

    #Overload let's you type functions that can take different arguments which seems bad but w/e devblogs.microsoft.com/typescr

    #Satisfies is some TS bullshit I haven't figured out yet but which is probably useful sometimes devblogs.microsoft.com/typescr

    I just like to see parity with JSDocs and TS Syntax!

    #webDev

  4. Can't believe I'm about to share #typescript content, but version 5.0 adds support for @satisfies and @overload to #JSDoc and that's p cool 👍

    #Overload let's you type functions that can take different arguments which seems bad but w/e devblogs.microsoft.com/typescr

    #Satisfies is some TS bullshit I haven't figured out yet but which is probably useful sometimes devblogs.microsoft.com/typescr

    I just like to see parity with JSDocs and TS Syntax!

    #webDev

  5. #typescript 4.9 is only a few days old and I already can't image it without the #satisfies operator anymore lol. If you need help to understand it, watch this youtu.be/Danki1DyiuI?t=247