You can use typescript-generator as larslonne mentioned. It generates TypeScript interfaces from Java JSON classes. Some features you may find useful:
- Maven and Gradle plugin (can also be invoked directly from Java)
- Jackson 1 and Jackson 2
- collections, enums, inheritance, generics
- Javadoc comments to JSDoc comments
- detailed documentation (README, Wiki, Maven plugin)
- releases in Maven central repo
Here is example how to use it from Maven:
<plugin>
<groupId>cz.habarta.typescript-generator</groupId>
<artifactId>typescript-generator-maven-plugin</artifactId>
<version>1.25.322</version>
<executions>
<execution>
<id>generate</id>
<goals>
<goal>generate</goal>
</goals>
<phase>process-classes</phase>
<configuration>
<jsonLibrary>jackson2</jsonLibrary>
<classes>
<class>com.acme.library.Book</class>
</classes>
<outputFile>target/rest.d.ts</outputFile>
<outputKind>module</outputKind>
</configuration>
</execution>
</executions>
</plugin>
Edit: Run it using mvn process-classes or using later phase like mvn install.
You can also pull <configuration> element two levels up and run mvn typescript-generator:generate.
Edit: I am the author of typescript-generator.