Я недавно писал TypeScript для работы в браузере. Что я нахожу, я хочу запустить тот же код из приложения Java. У меня есть сложная логика, которую я хочу написать один раз и использовать в среде JavaScript в браузере и в среде рабочего стола Java. Теперь я знаю, что я могу разместить javascript из java, но мне интересно, есть ли способ преобразования TypeScript в чистый Java-код?Преобразование TypeScript в Java
ответ
TypeScript - это еще новый язык, и он добавляет функции rapidly. Даже если бы существовал такой транспилер, вы оказались бы в очень неудачной ситуации, потому что транспилятор всегда был бы отставать от возможностей TypeScript.
«Безопасный» подход заключается в том, чтобы преобразовать TypeScript в JavaScipt и перевести на Java. Это имеет больше смысла для меня, потому что JavaScript - это стандартизированный язык, который достиг какой-то зрелости, но все равно будет плохой идеей. Тем не менее, есть not even транспилер для последнего шага.
Даже если бы были такие транспилеры, я бы определенно не хотел этого делать, потому что вы попали в ловушку. Транспилеры отнюдь не идеальны, и код будет более сложным для понимания людьми (example) и для проверки.
Edit:Mozilla Rhino проект может перевести JavaScript в Java.
В самой дескрипторной строке есть компилятор ts to js для запуска в браузере. –
Если конвертер сгенерировал вывод как читаемый как машинопись для javascript-компилятора, я был бы очень доволен. Я нахожу это вполне читаемым. –
. Преобразуя JavaScript, вы потеряете всю богатую информацию о типе, которая у вас есть в программе TypeScript, поэтому я не понимаю, почему это было бы лучшей идеей. –
Извините, если это, кажется, представляет еще один язык в миксе.
Почему бы не рассмотреть вопрос об использовании ScalaJS к обоим генерировать JavaScript И JVM-совместимый (Java) рутин, поэтому пользуясь Java-to-Scala interop и Java-подобный синтаксис?
В принципе, код проекта Scala/ScalaJS может быть настроен на output both Javascript and Java-compatible byte code libraries/JARs (последний для интеграции обратно в другой код/JVM Java).
Если изучение языка Scala кажется, еще один раз раковиной, вы могли бы также рассмотреть programmatically converting your existing Java routines into Scala* для дальнейшего превращения в ScalaJS/Javascript, все, как дополнительный шаг сборки:
Наконец, вы можете, с некоторыми оговорками, конвертировать третьи стороннюю машинопись ОПРЕДЕЛЕНИЙ в Scala [JS] код API, так что, чтобы делать звонки включены библиотекам машинописи сильно типизированные Scala код:
* ScalaJS код может зависеть только от включения/кросс-компиляции других Scala-производных кода/библиотек, но 'нормальный' Scala может импортировать любой Java-совместимую библиотеку.
UPDATE:Kotlin, по JetBrains (авторы различных великих Иды, в том числе IntelliJ IDEA) является еще одной виртуальной машины Java-ориентированной, лаконичными, язык, а также с поддержкой Javascript кросс-компиляции. Также есть инструмент конвертирования Java-to-Kotlin с одним щелчком мыши для Intellij и Eclipse.
Kotlin, похоже, набирает обороты, считается менее сложным, чем Scala, а также используется для разработки приложений Android и IOS (RoboVM Studio).
Причина этого в том, что OP хочет разработать машинописные, а не scalajs. Ваш ответ очень полезен, но только для другого вопроса. – peterh
У меня есть аналогичная цель, и я собираюсь попробовать http://www.jsweet.org/ перевести java на javascript. До сих пор некоторые из них были ограничены (нет поддержки для оператора алмазов, анонимных внутренних классов и т. Д.), Но преимущества, связанные с возможностью писать и поддерживать одну кодовую базу вместо двух, слишком велики, чтобы игнорировать
Не просили. ОП запросил машинопись для java, а не java для javascript. – peterh
Написать в TypeScript, скомпилируйте как JVM, так и браузер, попробуйте https://1c.wizawu.com
Что такое 1c? Передает ли он TS исходный код Java, код байта Java или запускает TS на JVM с помощью интерпретатора или Rhino? –
@StefanHaustein В основном это две части работы: 1) Построить определения машинописных описаний для JAR (библиотеки JDK или Maven), чтобы мы могли вызывать Java API из машинописного текста. 2) Перевести исходный код машинописного текста на исполняемый скрипт nashorn. – wizawu
- 1. Преобразование TypeScript в Dart
- 2. Преобразование C# в TypeScript
- 3. Преобразование JavaScript в TypeScript
- 4. Преобразование JavaScript `require` в TypeScript
- 5. Преобразование Iterable в список в javascript/typescript
- 6. Преобразование метода jQuery .map() в TypeScript
- 7. Преобразование моего Углового кода в TypeScript
- 8. Преобразование простого кода дротика в TypeScript
- 9. Java DTOs to TypeScript
- 10. node-java typescript import
- 11. Преобразование файла JavaScript (JS) в файл описания TypeScript (.d.ts)
- 12. Преобразование определения функции WinJS с подфункцией в TypeScript
- 13. Как TypeScript 100.0% написан в TypeScript?
- 14. Преобразование Java байт в
- 15. Преобразование Perl в Java
- 16. Преобразование цвета в java
- 17. преобразование C# в java
- 18. Преобразование Python в java
- 19. Java - преобразование в BigInteger
- 20. Преобразование Java в C++
- 21. Преобразование Java в php?
- 22. Alog преобразование в Java
- 23. Преобразование Java в Scala
- 24. Преобразование UML в Java
- 25. Преобразование java в groovy
- 26. Преобразование даты в Java
- 27. Преобразование Lotusscript в Java
- 28. Преобразование Java в C++
- 29. Преобразование Jython в Java
- 30. Преобразование измерений в Java
Почему? Подлинность типа TypeScript для добавления статических типов в JS. Java уже имеет статические типы, я не уверен, что такое преимущество. –
@Juan Mendes. Чтобы однажды написать кусок сложной логики и поделиться ею в обеих средах. Эффективно. –
GWT может быть другим решением одной и той же проблемы, написать логику на Java и скомпилировать ее в JavaScript с использованием GWT. –