За даними 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, команди можуть поступово впроваджувати новий синтаксис у проєкти, змінюючи лише окремі частини системи без впливу на існуючий код.