Konverter TypeScript til Java
Jeg har skrevet TypeScript nylig, for å kjøre i en nettleser. Det jeg oppdager at jeg vil gjøre, er å kjøre den samme koden fra en Java-applikasjon. Jeg har en kompleks logikk jeg vil skrive én gang og bruke i et JavaScript-miljø i en nettleser, og i et Java skrivebordsmiljø. Nå vet jeg at jeg kan være vert for JavaScript fra Java, men det jeg lurer på er om det finnes en måte å konvertere TypeScript til ren Java-kode på?
Svar #1
Beklager hvis dette ser ut til å introdusere enda et språk i blandingen.
Hvorfor ikke vurdere å bruke ScalaJS for både å generere JavaScript OG JVM-kompatible (Java) rutiner, og dermed dra nytte av Java-til-Scala interop og Java-lignende syntaks?
I utgangspunktet kan et Scala/ScalaJS-kodeprosjekt konfigureres til å produsere både Javascript og Java-kompatible bytekodebiblioteker/JAR-filer (den sistnevnte for integrasjon tilbake i annen Java/JVM-kode).
Hvis det å lære Scala-språket virker som nok en tidskrevende oppgave, kan du også vurdere å programmessig konvertere dine eksisterende Java-rutiner til Scala*, for videre konvertering til ScalaJS/JavaScript, alt som et ekstra byggetrinn:
- Scalagen - Java til Scala-konvertering (prøv på nettet her)
Endelig kan du, med noen forbehold, konvertere tredjeparts TypeScript-definisjoner til Scala[JS]-kode-APIer, for å kunne gjøre kall til inkluderte TypeScript-biblioteker med sterkt typet Scala-kode:
- scala-js-ts-importer - TypeScript-importør for Scala.js
* ScalaJS-kode kan bare avhenge av/krosskompilere annen Scala-avledet kode/biblioteker, men 'vanlig' Scala kan importere hvilket som helst Java-kompatibelt bibliotek.
OPPDATERING: Kotlin, av Jetbrains (forfattere av flere flotte IDE-er, inkludert IntelliJ IDEA) er et annet JVM-sentrert, konsist språk, også med støtte for krysskompilering til Javascript. Det finnes også et ett-klikks Java-til-Kotlin-konverteringsverktøy, for både IntelliJ og Eclipse.
Kotlin ser ut til å få fotfeste, sies å være mindre «komplekst» enn Scala, og brukes også til utvikling av Android- og iOS-apper (RoboVM Studio).
Du kan prøve Kotlin her.
Svar #2
Dette er ikke et fullstendig svar på spørsmålet ditt, men det kan være interessant. Det finnes prosjektet Script4J som er et sett med biblioteker for å kode i TypeScript ved å bruke Java API. Selv om dette er et nytt prosjekt, kan det være nyttig.