Форматировщик TypeScript
Готовый вариант «Форматировщик JavaScript»
Форматируйте TypeScript с полной поддержкой аннотаций типов, дженериков, декораторов и интерфейсов. Использует парсер TypeScript, а не JavaScript, поэтому синтаксис типов распознаётся, а не воспринимается как ошибка.
- Файлы никогда не покидают ваше устройство
- Бесплатно, без регистрации
- Без водяных знаков
- Работает офлайн после загрузки
Как пользоваться: форматировщик javascript
- 1
Вставьте код
JavaScript, TypeScript или JSX.
- 2
Настройте стиль
Отступы, точки с запятой и предпочитаемый тип кавычек.
- 3
Скопируйте результат
Отформатировано в точности так, как это сделал бы Prettier в вашем редакторе.
Почему TypeScript нужен собственный парсер, а не использование парсера JavaScript
TypeScript — надмножество JavaScript, но синтаксис уровня типов, который он добавляет, — интерфейсы, дженерики с ограничениями через `extends`, декораторы, приведения типов через `as` и самостоятельные объявления только типов — не имеет никакого смысла в грамматике обычного JavaScript и заставляет парсер, понимающий только JavaScript, сразу же падать на совершенно валидном TypeScript. Использование выделенного парсера TypeScript вместо попытки заставить парсер JavaScript принимать надмножество собственной грамматики — вот что позволяет файлу, полному дженериков и интерфейсов, форматироваться корректно, а не отклоняться как синтаксическая ошибка в момент, когда в нём используется возможность, которой в самом JavaScript просто нет.
JSX внутри TypeScript отдельно
Файл `.tsx`, сочетающий синтаксис JSX с аннотациями типов TypeScript, по-настоящему неоднозначен для разбора в одном конкретном месте: приведение типа через угловые скобки вроде `<Foo>value` выглядит точно так же, как начало тега JSX-элемента, для парсера, которому не сообщили, какой диалект он читает. Выбор режима разбора TypeScript с поддержкой JSX корректно устраняет эту неоднозначность, поэтому выбор правильного диалекта заранее — вместо расчёта на то, что обычный парсер JavaScript сам во всём разберётся, — особенно важен именно для файлов компонентов, сочетающих оба синтаксиса.
Декораторы — всё ещё развивающаяся часть синтаксиса
Декораторы — аннотации в стиле `@Component`, распространённые в Angular и некоторых бэкенд-фреймворках на TypeScript, — прошли через несколько разных стадий предложений в процессе стандартизации языка, и разные кодовые базы могут ориентироваться на немного разные версии этого синтаксиса в зависимости от того, когда они были написаны и какие опции компилятора используют. Корректный разбор синтаксиса декораторов требует именно парсера, понимающего TypeScript; обычный парсер JavaScript, встретив `@` перед классом или методом, не имеет для этого определённого значения и отклонит файл целиком.
Часто задаваемые вопросы
Это то же самое, что запустить Prettier локально?
Да — это сам Prettier, только работающий в вашем браузере, а не в Node. С теми же настройками вы получите результат, побайтово идентичный `npx prettier` на том же файле.
Почему бы не использовать более простой форматировщик?
Потому что наивные форматировщики ломают реальный код. Фигурные скобки внутри шаблонных строк и регулярных выражений, JSX и автоматическая расстановка точек с запятой — всё это требует настоящего разбора языка. Форматировщик, который незаметно портит один файл из пятидесяти, хуже, чем его отсутствие.
Работает ли с TypeScript и JSX?
Да. Аннотации типов, дженерики, декораторы и JSX — всё это разбирается корректно. Обратите внимание: инструмент только форматирует, не проверяет типы и не компилирует код.
Почему форматирование не удалось?
В коде есть синтаксическая ошибка — прежде чем что-то вывести, Prettier должен разобрать код. Сообщение об ошибке содержит строку и столбец первой проблемы, чего обычно достаточно, чтобы её найти.
Мой код отправляется на сервер?
Нет. Prettier загружается в ваш браузер и работает там же. Проприетарный код никогда не покидает ваш компьютер, чего нельзя сказать о большинстве онлайн-форматировщиков.
Вам также может понадобиться
Форматтер JSON
Мгновенное форматирование, валидация и минификация JSON
Форматировщик HTML
Аккуратное форматирование и расстановка отступов в HTML
Форматировщик CSS
Форматирование и минификация таблиц стилей
Кодировщик и декодировщик Base64
Кодирование и декодирование Base64 и Base64URL
Минификатор CSS
Сжимайте таблицы стилей настоящим минификатором, понимающим CSS
Генератор хешей
MD5, SHA-1, SHA-256, SHA-384 и SHA-512
Минификатор JS
Сжимайте JavaScript настоящей минификацией, а не регулярными выражениями
Декодер JWT
Декодирование и анализ JSON Web Token