Код Читати оригінал на Infoq 1 хв читання 0

Dominic Gannaway представив TSRX — новий розширення TypeScript

Dominic Gannaway, колишній інженер основних команд React та Svelte, представив TSRX — нове розширення мови TypeScript для створення декларативних інтерфейсів користувача. Проєкт позиціонується як фреймворк-агностичний наступник JSX, який дозволяє компілювати компоненти у форматі .tsrx до різних середовищ виконання одночасно. Завдяки підтримці плагінів для React, Preact, Solid та Vue, TSRX переносить загальну ергономіку UI з рівня конвенцій на рівень синтаксису мови.

Стилізований ноутбук із кодом на синьому фоні в оточенні плаваючих іконок шестірок, лампи, вікон редактора та символів програмування.
Стилізований ноутбук із кодом на синьому фоні в оточенні плаваючих іконок шестірок, лампи, вікон редактора та символів програмування. · Джерело зображення: Infoq

За даними Infoq, новий інструмент TSRX дозволяє розробникам створювати компоненти, які можуть працювати в різних екосистемах без необхідності перепису логіки. Основна ідея полягає у використанні спільного AST (абстрактного синтаксичного дерева), яке плагіни обробляють для генерації ідіоматичного коду для кожного конкретного рунтайму, включаючи підтримку локальних стилів CSS.

Синтаксичні особливості та контроль потоку

TSRX впроваджує елементи керування на рівні операторів безпосередньо всередині шаблонів. Це дозволяє використовувати конструкції @if, @for, @switch та @try для обробки умов та помилок. На відміну від традиційних підходів, де для асинхронних запитів або меж помилок використовуються спеціальні компоненти-обгортки, TSRX пропонує декларативне вираження через @try, @catch та @pending.

Компонентна структура в новому розширенні використовує контейнер операторів @{ ... }, який завершується єдиним результатом рендерингу. Крім того, інструмент підтримує такі зручні функції як скорочення прописів (prop shorthands), ліниве деструктурування та стилі, прив'язані до конкретного компонента. Компілятор автоматично переписує селектори в блоках <style>, додаючи унікальні хеші для забезпечення ізоляції.

Екосистема та інтеграція

Для розробників підготовлено широку підтримку сучасних інструментів збірки, включаючи Vite, Rspack, Turbopack та Bun. Також доступні плагіни для Prettier, ESLint та спеціальна команда командного рядка tsrx-tsc для перевірки типів у CI/CD пайплайнах.

  • Підтримка React через @tsrx/react
  • Інтеграція з Preact через @tsrx/preact
  • Сумісність із SolidJS через @tsrx/solid
  • Використання з Vue через @tsrx/vue
  • Нативна підтримка Ripple через @tsrx/ripple

Важливо зазначити, що TSRX не є рунтаймом чи шаблонізатором, прив'язаним до одного компілятора. Він ближчий до самого JSX як синтаксису авторизації, який можуть споживати різні фреймворки. Оскільки проєкт перебуває на стадії альфа-версії, розробники рекомендують експериментувати з ним окремо, не проводячи миттєвої міграції всього коду бази.

Завдяки можливості компіляції файлів .tsrx у відповідні компоненти .tsx, команди можуть поступово впроваджувати новий синтаксис у проєкти, змінюючи лише окремі частини системи без впливу на існуючий код.

Контекст для України

Для української спільноти розробників поява TSRX може стати цікавим варіантом для мультиплатформних проєктів, де потрібно підтримувати кілька фреймворків одночасно. Оскільки інструмент працює через плагіни, він легко інтегрується в існуючі пайплайни на основі Vite або Bun, які популярні серед українських стартапів. Наявність підтримки стандартних інструментів як ESLint та Prettier забезпечує низький поріг входження для локальних команд, що вже звикли до сучасного стека TypeScript.

Часті запитання

Чи є TSRX окремим фреймворком або рунтаймом?
Ні, TSRX не є рунтаймом чи шаблонізатором. Він позиціонується як фреймворк-агностичний розширення мови TypeScript, схоже на JSX, яке дозволяє компілювати компоненти у різні середовища виконання одночасно.
Як можна інтегрувати TSRX в існуючі проєкти?
Оскільки проєкт перебуває на стадії альфа-версії, розробникам рекомендують поступове впровадження. Можна компілювати файли .tsrx у відповідні компоненти .tsx, змінюючи лише окремі частини системи без впливу на існуючий код.
Які інструменти збірки та підтримки підтримує TSRX?
Інструмент підтримує Vite, Rspack, Turbopack та Bun. Також доступні плагіни для Prettier та ESLint, а спеціальна команда tsrx-tsc дозволяє перевіряти типи у CI/CD пайплайнах.
Telegram

Свіжі новини у нашому Telegram

Отримуйте миттєві сповіщення про нові публікації в рубриці «Код»

@procodeandevenmore