← Все проекты
Проект / TypeScript

antfu/whenexpr: whenexpr — типобезопасный вычислитель условий для TypeScript

Пишите условия на простом языке выражений и получайте ошибки TypeScript при опечатках в ключах контекста.

Крошечная библиотека без зависимостей для вычисления условий (when-clause), вдохновлённая системой контекстов VS Code. Позволяет декларативно описывать, когда должен быть доступен UI-элемент, команда или функция, основываясь на текущем состоянии приложения....

★ 13 TypeScript Форки 0 Issue 0 Оценка 8/10 Карточка проверена

Для кого это

Для разработчиков на TypeScript, которые создают сложные UI с условной логикой, плагины или системы команд, где нужно динамически включать/выключать функциональность.

Проблема / задача

Ручное написание и поддержка множества условий в коде приводит к ошибкам, опечаткам и сложному рефакторингу, особенно когда условия зависят от динамического контекста.

Как это работает

Вы описываете интерфейс контекста на TypeScript, а условия пишете в виде строковых выражений (например, 'debug && mode == development'). Библиотека парсит выражение, проверяет все ключи контекста на этапе компиляции и вычисляет результат на основе переданного объекта. TypeScript подсветит неизвестные ключи как ошибки.

Что видно по README

Крошечная библиотека без зависимостей для вычисления условий (when-clause), вдохновлённая системой контекстов VS Code. Позволяет декларативно описывать, когда должен быть доступен UI-элемент, команда или функция, основываясь на текущем состоянии приложения. Главная фишка — полная типобезопасность: если в выражении есть опечатка или ссылка на несуществующее поле контекста, TypeScript выдаст ошибку ещё до запуска кода.

Ключевые возможности

Проверка выражений на этапе компиляции TypeScriptПоддержка логических, арифметических и операторов сравненияРабота с плоскими и вложенными (через точку или двоеточие) ключами контекстаДва режима сравнения: '==' (как в VS Code) и '===' (строгое равенство)Нулевые зависимости и маленький размер

Технологии

TypeScriptJavaScriptExpress

Интересный факт

Библиотека повторяет семантику оператора '==' из VS Code: правая часть сравнивается как строка, что позволяет писать 'mode == development' даже если 'development' — это строковый литерал в TypeScript-типе.

С чего начать

  • Установите пакет: pnpm add whenexpr
  • Опишите интерфейс контекста (Context)
  • Используйте evaluateWhen('условие', contextObject)

Оценка GitRadar

Удобство
9/10
Свежесть
8/10
Перспектива
7/10
Монетизация
4/10
Общая оценка
8/10

Вердикт GitRadar

Стоит попробовать, если вы разрабатываете расширение для VS Code, сложный редактор или любую систему, где много условной логики. Это элегантный способ вынести условия из кода в декларативные выражения с гарантиями от TypeScript.

Наблюдения по обновлениям

Проект свежий (версия 0.1.2), активно поддерживается автором (Anthony Fu), есть тесты и полная типизация.

Что мы проверили

Карточка собрана по данным GitHub, README и структуре репозитория. Это не официальная документация проекта.

Исходный репозиторий
https://github.com/antfu/whenexpr
Официальный сайт
https://npmx.dev/package/whenexpr
Лицензия
MIT
Создан на GitHub
23 апреля 2026 г.
Последнее обновление репо
23 апреля 2026 г.
Последняя проверка GitRadar
23 апреля 2026 г.
Изученные файлы
README.md, src/index.ts, package.json, test/__snapshots__/tsnapi/whenexpr/index.snapshot.js, test/__snapshots__/tsnapi/whenexpr/index.snapshot.d.ts, src/paths.ts

FAQ

Что это такое?

Библиотека для вычисления строковых условий с проверкой типов в TypeScript.

Для кого подходит?

Для TypeScript-разработчиков, которым нужно управлять видимостью UI, доступностью команд или логикой функций на основе контекста.

Источники

Нужна помощь с antfu/whenexpr?

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