Перейти к содержимому

Конвертер TypeScript в JavaScript — Numio

Удаляет типы TypeScript — аннотации, интерфейсы, псевдонимы типов и дженерики — и выдаёт чистый JavaScript. Работает для .ts и .tsx: JSX сохраняется как есть, поэтому TSX-компонент становится JSX. Код конвертируется на сервере; ничего не проверяется на типы, не собирается в бандл и не запускается.

Посмотреть, как фрагмент TypeScript выглядит на чистом JavaScript, прежде чем использовать его в JS-проекте.

Code is converted on the server. No type-checking, execution or dependency bundling is performed. JSX is preserved.

Load an example (replaces your input)

TypeScript

JavaScript

Когда пригодится

  • Посмотреть, как фрагмент TypeScript выглядит на чистом JavaScript, прежде чем использовать его в JS-проекте.
  • Превратить React-компонент .tsx в .jsx, удалив типы props и сохранив JSX.

Как пользоваться

  1. Вставьте TypeScript или TSX либо загрузите пример (интерфейс и функция, дженерики, JSX). Загрузка примера заменяет ваш ввод.
  2. Посмотрите JavaScript справа. Аннотации типов и интерфейсы исчезают; код, существующий во время выполнения, например enum, выводится как JavaScript.
  3. Скопируйте результат. Если нужна типобезопасность, проверьте исходный TypeScript отдельно командой tsc --noEmit.

Ввод TypeScript

interface User { name: string }
const greet = (user: User): string => "Hello, " + user.name;

Вывод JavaScript

const greet = (user) => "Hello, " + user.name

Подробности и ограничения

Ваш код отправляется на сервер douni.one для конвертации. Не вставляйте секреты, API-ключи или исходный код, которым нельзя делиться.

Удаление типов — это не проверка типов: const count: number = "text" конвертируется без ошибки. Проверяйте типы компилятором TypeScript.

JSX остаётся JSX. Чтобы запустить React-компоненты в браузере, по-прежнему нужен этап сборки JSX вашего проекта.

Конструкции со значениями времени выполнения, например enum, порождают код JavaScript, а не исчезают.

Конвертируется только вставленный код: импорты не разрешаются, файлы не собираются в бандл, а современный синтаксис не понижается для старых браузеров.

FAQ

Можно ли конвертировать TSX в JSX?

Да. Вставьте компонент .tsx: типы props и интерфейсы удаляются, а JSX остаётся без изменений, так что результат можно сохранить как .jsx. Компиляция JSX в вызовы React.createElement в этот инструмент не входит.

Чем это отличается от запуска tsc?

tsc проверяет типы во всём проекте и может выдавать JavaScript для выбранной цели. Эта страница лишь удаляет типы из вставленного кода с помощью TypeScript-трансформа Babel, сохраняет современный синтаксис и никогда не сообщает об ошибках типов. Для целых проектов запускайте локально tsc или бандлер вроде esbuild.

Почему код с ошибками типов всё равно конвертировался?

Конвертация синтаксическая. Присваивания и вызовы функций не проверяются на соответствие типам, поэтому для поиска ошибок типов запускайте компилятор TypeScript в своём проекте.

Что проверить при синтаксической ошибке?

Посмотрите на указанные строку и столбец, скобки вокруг них и аннотацию типа в этом месте. Сократите код до небольшого фрагмента, чтобы локализовать проблему; при ошибке соединения нажмите Retry.

Спецификации и справка