TGViewer
Будни разработчика Будни разработчика @htmlshit · 14.4K subscribers
Post #3886 2.12K
#инструмент дня

Наверняка многие сталкивались с проблемой правильного описания и, как результат, поддержки регулярных выражений.

Особенно остро встает вопрос восприятия - правильно ли добавил группу захвата в последовательность условий, какой предполагается вывод, да и впринципе есть ли сейчас в регулярном выражении ошибки.

Да, можно исопльзовать сервисы вроде regex101.com, но ведь хочется не покидая среду разработки.

Недавно появилось отличное решение проблемы - ArkRegex как абстракция над new RegExp() с выводом пояснительной информации и валидацией в типах Typescript

https://arktype.io/docs/blog/arkregex

Пример из документации:


import { regex } from "arkregex"

const ok = regex("^ok$", "i")
// Regex<"ok" | "oK" | "Ok" | "OK", { flags: "i" }>

const semver = regex("^(\\d*)\\.(\\d*)\\.(\\d*)$")
// Regex<`${bigint}.${bigint}.${bigint}`, { captures: [`${bigint}`, `${bigint}`, `${bigint}`] }>

const email = regex("^(?<name>\\w+)@(?<domain>\\w+\\.\\w+)$")
// Regex<`${string}@${string}.${string}`, { names: { name: string; domain: `${string}.${string}`; }; ...>


Однако не обошлось без нюансов - во избежание проблем с производительностью, лучше ограничивать длину и сложность регулярного выражения (скорее всего большинство из вас не столкнутся с этим нюансом).

Если сильно увлечься, потенциально сложный вывод типов может сильно нагружать языковой сервер и typescript начнет с большой задержкой выводить типы проекта из-за сложных регулярных выражений в большом количестве.

Ждём tsgo и существенного прироста производительности, чтобы не думать о нюансах.
ArkType ArkType Docs TypeScript's 1:1 validator, optimized from editor to runtime
  • ❤ 5
  • 👍 2
More from @htmlshit
  1. Oct 2, 2026#ссылка дня В комментариях к посту про моргающее меню а-ля macOS HIG всплыл вопрос: а есть…
  2. Oct 1, 2026⚡️ JavaScript, архитектура и ИИ: о чем будут говорить на юбилейной HolyJS 2026 Autumn 📆 2…
  3. Oct 1, 2026#фишка дня Давайте нормализуем выкладывание кода вместе с обучающим видео! Немного раздраж…
  4. Oct 1, 2026#фишка дня Каждому смотрящему сериалы известно, что один из самых лучших способов сделать…
  5. Sep 30, 2026Котаны, вам ещё и скидка по промокоду htmlshit, налетайте!
  6. Sep 30, 2026👨‍💻 Фронтенд с AI: что можно делегировать агентам 5 октября, стартует конференция Podlod…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →