# ATD now supports TypeScript

**URL:** <https://discuss.ocaml.org/t/atd-now-supports-typescript/9735>\
**Category:** Community\
**Tags:** javascript, json, atd, announce\
**Created:** [April 27, 2022, 12:21am UTC](https://discuss.ocaml.org/t/atd-now-supports-typescript/9735 "2022-04-27T00:21:04Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![mjambon](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ocaml.org/mjambon/32/6180_2.png) [@mjambon](https://discuss.ocaml.org/u/mjambon)\
**Post date:** [April 27, 2022, 12:21am UTC](https://discuss.ocaml.org/t/atd-now-supports-typescript/9735/1 "2022-04-27T00:21:04Z")

</div>

[ATD](https://github.com/ahrefs/atd) is a language for specifying typed interfaces for communicating across programming languages. It turns concrete type definitions (“schema”) into code for each language. This code can read and write JSON safely, relieving the user of worrying about the structure of the JSON data.

Starting from version 2.5.0, ATD provides `atdts`, a single executable that turns a file `foo.atd` into `foo.ts`. See the [tutorial](https://atd.readthedocs.io/en/latest/atdts.html#tutorials) for an introduction. The programming languages targeted by ATD are now:

- Java
- OCaml
- Python + mypy
- ReScript (BuckleScript)
- Scala
- TypeScript

For an expert overview of the features that are currently supported, check out the test data:

- [ATD input](https://github.com/ahrefs/atd/blob/master/atdts/test/atd-input/everything.atd)
- [TypeScript output](https://github.com/ahrefs/atd/blob/master/atdts/test/ts-expected/everything.ts)

See also the [announcement for atdpy](https://discuss.ocaml.org/t/atdpy-derive-safe-json-interfaces-for-python/9544) that we made a month ago.
