Ho scritto di recente TypeScript, per l'esecuzione in un browser. Quello che sto cercando di fare è eseguire lo stesso codice all'interno di un'applicazione Java. Ho una logica complessa che voglio scrivere una volta e utilizzare in un ambiente JavaScript all'interno di un browser e all'interno di un ambiente desktop Java. Ora so che posso ospitare javascript da java, ma quello che mi chiedo è se c'è un modo di convertire TypeScript in puro codice java?Converti TypeScript in Java
risposta
TypeScript è una lingua ancora nuova e aggiunge le funzioni rapidly. Anche se ci fosse un tale traspolatore, si finirebbe in una situazione molto sfortunata perché il transpiler sarebbe sempre dietro le capacità TypeScript.
Un approccio "più sicuro" sarebbe quello di trascrivere TypeScript in JavaScipt e quello transpolare in Java. Ha più senso per me perché JavaScript è un linguaggio standardizzato che ha raggiunto una certa maturità ma sarebbe comunque una cattiva idea. Tuttavia, c'è il transpiler not even per l'ultimo passaggio.
Anche se ci fossero tali transpilers, non vorrei assolutamente farlo perché si finirebbe in una trappola. I transporter non sono affatto perfetti e il codice sarebbe più difficile da comprendere per le persone (example) e da verificare.
Edit:Mozilla Rhino progetto può tradurre JavaScript per Java.
Lo stesso dattiloscritto ha un compilatore ts to js da eseguire nel browser. –
Se il convertitore ha generato un output leggibile come il dattiloscritto nel compilatore javascript, sarei molto felice. Trovo che sia abbastanza leggibile –
Convertendo JavaScript si perderebbero tutte le informazioni di digitazione complete che si hanno in un programma TypeScript, quindi non vedo perché sarebbe un'idea migliore. –
Ci scusiamo se questo sembra introdurre un'altra lingua nel mix.
Perché non considerare l'utilizzo di ScalaJS sia generano JavaScript E routine JVM-compatibile (Java), quindi, approfittando della Java-to-Scala interop e Java-like sintassi?
In sostanza, un progetto di codice di Scala/ScalaJS può essere configurato per output both Javascript and Java-compatible byte code libraries/JARs (quest'ultimo per l'integrazione di nuovo in altro codice/JVM Java).
Se l'apprendimento della lingua Scala sembra ancora un altro time-lavandino, si potrebbe anche prendere in considerazione programmatically converting your existing Java routines into Scala*, per l'ulteriore trasformazione in ScalaJS/Javascript, il tutto come un passaggio di generazione in più:
Infine, è possibile, con alcuni avvertimenti, convertire defintions dattiloscritto 3rd-party in Scala [JS] API di codice di, in modo da rendere le chiamate alle librerie dattiloscritto inclusi fortemente tipizzato codice Scala:
* ScalaJS codice può solo dipendere-on/cross-compilazione altro codice/librerie Scala-derivati, ma 'normale' Scala può importare qualsiasi libreria compatibile con Java.
UPDATE:Kotlin, da JetBrains (autori di varie grandi IDE, tra cui IntelliJ IDEA) è un altro JVM-centric, conciso, il linguaggio, anche con il supporto cross-compilazione Javascript. C'è anche uno strumento di conversione Java-to-Kotlin con un clic, sia per Intellij che per Eclipse.
Kotlin sembra guadagnare trazione, si dice che sia meno "complesso" di Scala e viene utilizzato anche per lo sviluppo di app Android e IOS (RoboVM Studio).
È possibile try out Kotlin here.
Il motivo è che sicuramente l'OP vuole sviluppare dattiloscritto e non scalajs. La tua risposta è molto utile, ma solo per una domanda diversa. – peterh
Ho un obiettivo simile e sto per provare http://www.jsweet.org/ per trasporre java in javascript. Finora ci sono alcuni limiti (nessun supporto per l'operatore diamond, classi interne anonime, ecc), ma i vantaggi di poter scrivere e mantenere un codebase invece di due sono troppo grandi per ignorare
Non è stato richiesto. L'OP ha richiesto dattiloscritto a java e non java a javascript. – peterh
Scrivi in TypeScript, compila sia per JVM che per browser, prova https://1c.wizawu.com
Che cosa è esattamente 1c? Traspone da TS a Java il codice sorgente, il codice byte Java o esegue TS su una JVM utilizzando un interprete o Rhino? –
@StefanHaustein Ha principalmente due parti di lavoro: 1) Costruire definizioni di dattiloscritto per JAR (librerie JDK o Maven) in modo da poter chiamare l'API Java da dattiloscritto. 2) Tradurre il codice sorgente del dattiloscritto in uno script eseguibile nashorn. – wizawu
- 1. TypeScript: Converti un valore bool in stringa
- 2. Converti JavaScript in Java
- 3. Converti byte stringa in Java
- 4. Converti ByteArray in UUID java
- 5. Java: Converti byte in intero
- 6. Converti array Java in Iterable
- 7. Java - Converti immagine in Base64
- 8. Converti file XML in CSV in java
- 9. Converti stringa in Clob in Java
- 10. Converti ByteBuffer in String in Java
- 11. Converti stringa in data in java
- 12. Converti java.util.HashMap in scala.collection.immutable.Map in java
- 13. Converti MD5 in stringa in java
- 14. Typescript: costanti in un'interfaccia
- 15. Converti ByteBuffer in byte array java
- 16. Converti stringa di codice in Java
- 17. Converti array MD5 in String java
- 18. Converti array JSON in normale array Java
- 19. Converti numero Java in BigDecimal: modo migliore
- 20. Converti short to byte [] in Java
- 21. Converti documento Word in PDF utilizzando Java
- 22. Converti stream in stringa Java/Groovy
- 23. Java Converti oggetto [] matrice in vettore
- 24. Java 8 - Converti LocalDate in ZonedDateTime
- 25. Converti timestamp unix alla data in java
- 26. Converti file .Java in file .Smali
- 27. Java - Converti stringa in oggetto URI valido
- 28. Converti un tiff in un'immagine bufferizzata (Java)
- 29. Converti stringa Java in Ora, NON Data
- 30. Converti int in BigDecimal con decimali - Java
Perché? La raison d'être di TypeScript consiste nell'aggiungere tipi statici a JS. Java ha già tipi statici, non sono sicuro di quale sia il vantaggio. –
@Juan Mendes. In modo che io possa scrivere una volta una logica complessa e condividerla in entrambi gli ambienti. In modo efficiente. –
GWT può essere una soluzione diversa allo stesso problema, scrivere la logica in Java e averla compilata in JavaScript usando GWT. –