{"id":13395227,"url":"https://github.com/stereobooster/type-o-rama","last_synced_at":"2025-04-03T02:09:24.620Z","repository":{"id":66225736,"uuid":"117700696","full_name":"stereobooster/type-o-rama","owner":"stereobooster","description":"👾 JS type systems interportability","archived":false,"fork":false,"pushed_at":"2022-11-14T10:32:09.000Z","size":125,"stargazers_count":244,"open_issues_count":1,"forks_count":6,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-10-30T08:37:39.228Z","etag":null,"topics":["closure-compiler","elm","flow","graphql-schema","jsdoc","json-schema","purescript","typescript"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stereobooster.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-01-16T15:20:34.000Z","updated_at":"2024-08-12T10:51:02.000Z","dependencies_parsed_at":"2023-03-21T20:17:51.643Z","dependency_job_id":null,"html_url":"https://github.com/stereobooster/type-o-rama","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stereobooster%2Ftype-o-rama","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stereobooster%2Ftype-o-rama/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stereobooster%2Ftype-o-rama/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stereobooster%2Ftype-o-rama/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stereobooster","download_url":"https://codeload.github.com/stereobooster/type-o-rama/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246922247,"owners_count":20855345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["closure-compiler","elm","flow","graphql-schema","jsdoc","json-schema","purescript","typescript"],"created_at":"2024-07-30T17:01:46.834Z","updated_at":"2025-04-03T02:09:24.593Z","avatar_url":"https://github.com/stereobooster.png","language":null,"funding_links":[],"categories":["Others","Libraries","Resources","Tools","Misc","Reason","Types","Other tools","Packages / Helpers"],"sub_categories":["JavaScript Libraries","Tools","IDE","Unmaintained"],"readme":"[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine)\n\n# \u003cimg alt=\"type-o-rama\" width=\"100%\" src=\"https://github.com/stereobooster/type-o-rama/blob/master/type-o-rama.png?raw=true\"/\u003e\n\n## Conversion table\n\nConvert from `X→` to `→Y` (`X→Y`).\n\n|                              | →TypeScript                      | →Flow                     | →Graphql                     | →JSON Schema                    | →Elm                      | →JSDoc                    | →Closure JSDoc                    | →Reason                    |\n| ---------------------------- | -------------------------------- | ------------------------- | ---------------------------- | ------------------------------- | ------------------------- | ------------------------- | --------------------------------- | -------------------------- |\n| [TypeScript](#typescript)→   | -                                | [+](#typescript-to-flow)  |                              | [+](#typescript-to-json-schema) |                           | [+](#typescript-to-jsdoc) | [+](#typescript-to-closure-jsdoc) | [+](#typescript-to-reason) |\n| [Flow](#flow)→               | [+](#flow-to-typescript)         | -                         |                              | [+](#flow-to-json-schema)       |                           |                           | [😢](#flow-to-closure-jsdoc)      | [+](#flow-to-reason)       |\n| [GraphQL](#graphql)→         | [+](#graphql-to-typescript)      | [+](#graphql-to-flow)     | -                            | [+](#graphql-to-json-schema)    | [+](#graphql-to-elm)      |                           |                                   | [+](#graphql-to-reason)    |\n| [JSON Schema](#json-schema)→ | [📦](#json-schema-to-typescript) | [+](#json-schema-to-flow) | [+](#json-schema-to-graphql) | -                               | [📦](#json-schema-to-elm) |                           |                                   |                            |\n| [Elm](#elm)→                 | [+](#elm-to-typescript)          |                           |                              |                                 | -                         |                           |                                   |                            |\n| [JSDoc](#jsdoc)→             | [+](#jsdoc-to-typescript)        | [+](#jsdoc-to-flow)       |                              |                                 |                           | -                         |                                   |                            |\n| [JSON](#json)→               | [📦](#json-to-typescript)        | [📦](#json-to-flow)        | [+](#json-to-graphql)        | [+](#json-to-json-schema)       | [📦](#json-to-elm)        |                           |                                   |                            |\n| [Reason](#reason)→           | [+](#reason-to-typescript)       | [+](#reason-to-flow)      |                              |                                 |                           |                           |                                   | -                          |\n| [PureScript](#purescript)→   | [+](#purescript-to-typescript)   | [+](#purescript-to-flow)  |                              |                                 |                           |                           |                                   |                            |\n| [JavaScript](#javascript)→   | [+](#javascript-to-typescript)   | [+](#javascript-to-flow)  |                              |                                 |                           |                           |                                   | [+](#javascript-to-reason) |\n| [PropTypes](#proptypes)→     | [+](#proptypes-to-typescript)    | [+](#proptypes-to-flow)   |                              |                                 |                           |                           |                                   |                            |\n| [CSS Modules](#css-modules)→ | [+](#css-modules-to-typescript)  | [+](#css-modules-to-flow) |                              |                                 |                           |                           |                                   |                            |\n| [gRPC](#grpc)→               | [+](#grpc-to-typescript)         | [+](#grpc-to-flow)        | [+](#grpc-to-graphql)        | [+](#grpc-to-json-schema)       | [+](#grpc-to-elm)         |                           |                                   |                            |\n| [Thrift](#thrift)→           | [+](#thrift-to-typescript)       |                           |                              |                                 |                           |                           |                                   |                            |\n| [SQL](#sql)→                 | [+](#sql-to-typescript)          | [+](#sql-to-flow)         | [+](#sql-to-graphql)         |                                 |                           |                           |                                   |                            |\n\n## Badge [![type-o-rama](https://img.shields.io/badge/type--o--rama-%F0%9F%9A%80-blue.svg)](https://github.com/stereobooster/type-o-rama)\n\nIf you want to show that your project was mentioned in type-o-rama you can use this badge:\n\n```md\n[![type-o-rama](https://img.shields.io/badge/type--o--rama-%F0%9F%9A%80-blue.svg)](https://github.com/stereobooster/type-o-rama)\n```\n\n## TypeScript\n\n* [try online](http://www.typescriptlang.org/play/)\n* [cheat sheet](https://github.com/frontdevops/typescript-cheat-sheet)\n* [type-coverage](https://github.com/plantain-00/type-coverage) - A CLI tool to check type coverage for typescript code\n* [dtslint](https://github.com/Microsoft/dtslint)\n* [TSTools](http://www.brics.dk/tstools/#/) - Tools for developing TypeScript declaration files\n* [typewiz](https://github.com/urish/typewiz)\n* [Advanced Static Types in TypeScript](https://egghead.io/courses/advanced-static-types-in-typescript)\n\n### TypeScript to Flow\n\n* [flowgen](https://github.com/joarwilk/flowgen)\n\nSee also:\n\n* [Differences between Flowtype and TypeScript](https://github.com/niieani/typescript-vs-flowtype)\n\n### TypeScript to JSON Schema\n\n* [typescript-to-json-schema](https://github.com/xiag-ag/typescript-to-json-schema)\n* [typescript-json-schema](https://github.com/YousefED/typescript-json-schema)\n* [typson](https://github.com/lbovet/typson)\n* [typhen-json-schema](https://github.com/shiwano/typhen-json-schema)\n\n### TypeScript to JSDoc\n\n* [ts2jsdoc](https://github.com/develar/ts2jsdoc)\n* [ts2jsdoc](https://github.com/spatools/ts2jsdoc) last commit 16 May 2015\n\n### TypeScript to Closure JSDoc\n\n* [tsickle](https://github.com/angular/tsickle)\n* [typescript-closure-compiler](https://github.com/sagifogel/typescript-closure-compiler)\n* [bolinfest/typescript](https://github.com/bolinfest/typescript)\n* [`--language_in=ES6_TYPED`](https://groups.google.com/forum/#!topic/closure-compiler-discuss/5EVAw6oO2BI)\n\n### TypeScript to Reason\n\n* [ReasonablyTyped](https://github.com/ReasonablyTyped/ReasonablyTyped)\n\n### TypeScript to Dart\n\n* [js_facade_gen](https://github.com/dart-lang/js_facade_gen)\n\n### TypeScript to Kotlin\n\n* [ts2kt](https://github.com/Kotlin/ts2kt)\n\n## Flow\n\n* [try online](https://flow.org/try)\n* [cheat sheet](https://www.saltycrane.com/flow-type-cheat-sheet/latest/)\n* [flow-coverage-report](https://github.com/rpl/flow-coverage-report) - Generate flow coverage reports\n\n### Flow to TypeScript\n\n* [flow-to-typescript](https://github.com/bcherny/flow-to-typescript)\n* [babel-plugin-flow-to-typescript](https://github.com/Kiikurage/babel-plugin-flow-to-typescript)\n\nSee also:\n\n* [Utility Types for TypeScript (provide compatibility with Flow's Utility Types)](https://github.com/piotrwitek/utility-types)\n* [Differences between Flowtype and TypeScript](https://github.com/niieani/typescript-vs-flowtype)\n\n### Flow to Reason\n\n* [ReasonablyTyped](https://github.com/ReasonablyTyped/ReasonablyTyped)\n\n### Flow to Closure JSDoc\n\n* 😢 no options here\n\nWho needs it:\n\n* [mapbox-gl-js](https://github.com/mapbox/mapbox-gl-js/issues/5939)\n* [React](https://github.com/facebook/react/pull/11967)\n\n### Flow to Prepack\n\n* [babel-plugin-flow-prepack](https://github.com/codemix/flow-runtime/tree/master/packages/babel-plugin-flow-prepack)\n\n### Flow to JSON Schema\n\n* [flow2schema](https://github.com/loyd/flow2schema)\n* [babel-plugin-flow-to-json](https://github.com/sanohin/babel-plugin-flow-to-json)\n\n### Flow to PropTypes\n\n* [babel-plugin-flow-react-proptypes](https://github.com/brigand/babel-plugin-flow-react-proptypes)\n\n## GraphQL\n\n### GraphQL to TypeScript\n\n* [graphql-code-generator](https://graphql-code-generator.com/)\n* [gql2ts](https://github.com/avantcredit/gql2ts)\n* [apollo-codegen](https://github.com/apollographql/apollo-codegen)\n* [transform.now.sh](https://transform.now.sh/graphql-to-typescript/)\n\nSee also:\n\n* [typed-graphqlify](https://github.com/acro5piano/typed-graphqlify). Build Typed GraphQL Query in TypeScript. Better TypeScript + GraphQL experience\n* [ts-graphql-plugin](https://github.com/Quramy/ts-graphql-plugin)\n\n### GraphQL to Flow\n\n* [graphql-code-generator](https://graphql-code-generator.com/)\n* [gql2flow](https://github.com/joarwilk/gql2flow)\n* [apollo-codegen](https://github.com/apollographql/apollo-codegen)\n* [transform.now.sh](https://transform.now.sh/graphql-to-flow/)\n\n### GraphQL to JSON Schema\n\n* [graphql-json-schema](https://github.com/jakubfiala/graphql-json-schema)\n\n### GraphQL to Elm\n\n* [graphqelm](https://github.com/dillonkearns/graphqelm), [Comaprison with other packages](https://discourse.elm-lang.org/t/introducing-graphqelm-a-tool-for-type-safe-graphql-queries/472/5)\n* [elm-graphql](https://github.com/jahewson/elm-graphql)\n\n### GraphQL to Reason\n\n* [graphql_ppx](https://github.com/mhallin/graphql_ppx)\n* [graphql-to-reason](https://www.npmjs.com/package/graphql-to-reason)\n\n## JSON Schema\n\n### JSON Schema to TypeScript\n\n* [quicktype](https://app.quicktype.io/#s=coordinate), 📦 cast\n* [transform.now.sh](https://transform.now.sh/json-schema-to-ts/)\n* [json-schema-to-typescript-browse](https://bcherny.github.io/json-schema-to-typescript-browser/)\n\n### JSON Schema to Flow\n\n* [json-schema-to-flowtype-cli](https://github.com/bokuweb/json-schema-to-flowtype-cli)\n* [flowtypify](https://github.com/rradczewski/flowtypify)\n* [json-schema-to-flow-type](https://github.com/dannynelson/json-schema-to-flow-type)\n\n### JSON Schema to Graphql\n\n* [json-schema-to-graphql-types](https://github.com/lifeomic/json-schema-to-graphql-types)\n* [jsonschema-to-graphql](https://www.npmjs.com/package/jsonschema-to-graphql)\n\n### JSON Schema to Elm\n\n* [quicktype](https://app.quicktype.io/#l=elm\u0026s=coordinate), 📦 Json.Decode\n\n### JSON Schema to gRPC\n\n* [jsonschema-protobuf](https://github.com/karissa/jsonschema-protobuf)\n\n### JSON Schema to SQL\n\n* [json-schema-table](https://github.com/andrglo/json-schema-table)\n\n## OpenAPI\n\n* [OpenAPI](https://swagger.io/specification/#dataTypes)\n\n### OpenAPI to TypeScript\n\n* [openapi3-ts](https://github.com/metadevpro/openapi3-ts)\n\n### Swagger to TypeScript\n\n* [json-ts](https://shakyshane.github.io/json-ts/)\n\n### Swagger to Flow\n\n* [json-to-flow](https://github.com/STRML/json-to-flow)\n* [swagger-to-flowtype](https://github.com/yayoc/swagger-to-flowtype)\n\n## Elm\n\n### Elm to TypeScript\n\n* [elm-typescript-interop](https://github.com/dillonkearns/elm-typescript-interop)\n\n## JSDoc\n\n### JSDoc to Flow\n\n* [flow-jsdoc](https://github.com/Kegsay/flow-jsdoc)\n\n### JSDoc to TypeScript\n\n* [tsd-jsdoc](https://github.com/englercj/tsd-jsdoc)\n* [typescript-closure-tools](https://github.com/fivetran/typescript-closure-tools)\n* [jsdoc-tsd](https://github.com/otris/jsdoc-tsd)\n\n### TypeScript JSDoc to TypeScript\n\n* 😢 [Allow `--declaration` with `--allowJs`](https://github.com/Microsoft/TypeScript/issues/7546)\n* 😢 [TypeScript-flavored JSDoc issues](https://github.com/Microsoft/TypeScript/issues?q=is%3Aissue+is%3Aopen+label%3A%22Domain%3A+JSDoc%22)\n\nWho needs it:\n\n* [puppeteer](https://github.com/GoogleChrome/puppeteer/issues/1826)\n\n### Closure JSDoc to TypeScript\n\n* [clutz](https://github.com/angular/clutz)\n\n### JSDoc flavours\n\n* [official](http://usejsdoc.org/)\n* [Closure compiler](https://github.com/google/closure-compiler/wiki/Annotating-JavaScript-for-the-Closure-Compiler)\n* [TypeScript-flavored JSDoc](https://github.com/Microsoft/TypeScript/wiki/JSDoc-support-in-JavaScript)\n* [ngdoc](https://github.com/angular/angular.js/wiki/Contribution%3A-Writing-AngularJS-Documentation)\n* [YUIDoc](https://yui.github.io/yuidoc/)\n* [Leafdoc](https://github.com/Leaflet/Leafdoc)\n* [jsduck](https://github.com/senchalabs/jsduck/wiki#syntax)\n* [esdoc](https://esdoc.org/manual/feature.html)\n* [autodoc](https://github.com/dtao/autodoc)\n\nSee also:\n\n* [State of documentation.js](https://macwright.org/2017/06/06/documentation-js.html)\n* [documentation.js: See also](https://github.com/documentationjs/documentation/wiki/See-also)\n\n## JSON\n\n### JSON to TypeScript\n\n* [MakeTypes](https://jvilk.com/MakeTypes/), 📦 TypeScript Proxies\n* [quicktype](https://app.quicktype.io/), 📦 cast\n* [transform.now.sh](https://transform.now.sh/json-to-ts-interface/), 📦 [io-ts](https://github.com/gcanti/io-ts)\n* [json-ts](https://shakyshane.github.io/json-ts/)\n* [jsontots](http://www.jsontots.com/)\n* [json2ts](http://json2ts.com/)\n* [json2dts](http://xperiments.in/json2dts/)\n\n### JSON to Flow\n\n* [transform.now.sh](https://transform.now.sh/json-to-flow-types/), 📦 [Sarcastic](https://github.com/jamiebuilds/sarcastic)\n* [json-flow](https://github.com/johnydays/json-flow)\n\n### JSON to Graphql\n\n* [graphql-schema-from-json](https://github.com/marmelab/graphql-schema-from-json)\n* [json-to-graphql](https://github.com/aweary/json-to-graphql)\n\n### JSON to PropTypes\n\n* [transform.now.sh](https://transform.now.sh/)\n\n### JSON to Elm\n\n* [json-to-elm](https://github.com/eeue56/json-to-elm), 📦 Json.Decode\n* [quicktype](https://app.quicktype.io/#l=elm), 📦 Json.Decode\n\n### JSON to Scala\n\nI suppose this can be used for Scala.js.\n\n* [transform.now.sh](https://transform.now.sh/json-to-scala-case-class/)\n\n### JSON to JSON Schema\n\n* [quicktype](https://app.quicktype.io/#l=schema)\n* [json-to-json-schema](https://github.com/mohsen1/json-to-json-schema)\n\n### JSON to Reason\n\n* [ppx_deriving_yojson](https://github.com/ocaml-ppx/ppx_deriving_yojson) ?\n\n## Reason\n\n* [Get Started with Reason](https://egghead.io/courses/get-started-with-reason)\n\n### Reason to TypeScript\n\n* [genTypescript](https://github.com/cristianoc/genTypescript)\n\n### Reason to Flow\n\n* [Progress on that prototype for automatically creating Flow APIs for @reasonml](https://twitter.com/jordwalke/status/979861035795431424)\n* [genFlow](https://github.com/cristianoc/genFlow)\n\n## PureScript\n\n### PureScript to TypeScript\n\n* [purescript-ohyes](https://github.com/justinwoo/purescript-ohyes)\n* [purescript-tsd-gen](https://github.com/minoki/purescript-tsd-gen)\n\n### PureScript to Flow\n\n* [purescript-bismuth](https://github.com/justinwoo/purescript-bismuth)\n\n## JavaScript\n\n[Status of Static Typing in ECMAScript](https://ecmascript-daily.github.io/pages/status-of-static-typing-in-ecmascript/)\n\n### JavaScript to TypeScript\n\n* [jstyper](https://github.com/ochafik/jstyper)\n* [react-javascript-to-typescript-transform](https://github.com/lyft/react-javascript-to-typescript-transform)\n* [dts-gen](https://github.com/Microsoft/dts-gen)\n\n### JavaScript to Flow\n\n* [genFlowFilesCommand](https://github.com/facebook/flow/blob/master/src/commands/genFlowFilesCommand.ml)\n\n### JavaScript to Reason\n\n* [rebind](https://github.com/jchavarri/rebind)\n\n## PropTypes\n\n### PropTypes to TypeScript\n\n* [react-javascript-to-typescript-transform](https://github.com/lyft/react-javascript-to-typescript-transform)\n\n### JSX to TypeScript\n\n* [JSXtyper](https://github.com/fuselabs/jsxtyper)\n\n### PropTypes to Flow\n\n* [codemod-proptypes-to-flow](https://github.com/billyvg/codemod-proptypes-to-flow)\n* [proptypes-to-flow-codemod](https://github.com/mikhail-hatsilau/proptypes-to-flow-codemod)\n* [codemod-react-proptypes-to-flow](https://github.com/jamiebuilds/codemod-react-proptypes-to-flow)\n* [proptypes-to-flow](https://github.com/micnews/proptypes-to-flow)\n\n## CSS Modules\n\n### CSS Modules to TypeScript\n\n* [typed-css-modules](https://github.com/Quramy/typed-css-modules)\n* [friendly-typed-css-modules](https://www.npmjs.com/package/friendly-typed-css-modules)\n\n### CSS Modules to Flow\n\n* [css-modules-flow-types](https://github.com/skovhus/css-modules-flow-types)\n\n## gRPC\n\n### gRPC to TypeScript\n\n* [grpc-web](https://github.com/improbable-eng/grpc-web)\n* [protobuf.js](https://github.com/dcodeIO/protobuf.js#pbts-for-typescript)\n* [ts-protoc-gen](https://github.com/improbable-eng/ts-protoc-gen)\n* [protobuf-js-typer](https://github.com/flegall/protobuf-js-typer)\n\n### gRPC to Flow\n\n* [protobuf2flowtype](https://github.com/netproteus/protobuf2flowtype)\n* [protobuf-js-typer](https://github.com/flegall/protobuf-js-typer)\n* [protoc-gen-flow](https://github.com/steckel/protoc-gen-flow)\n\n### gRPC to GraphQL\n\n* [rejoiner](https://github.com/google/rejoiner) (Java)\n* [gRPC-to-GraphQL-Adapter](https://github.com/Helmsen/gRPC-to-GraphQL-Adapter)\n\n### gRPC to JSON Schema\n\n* [protoc-gen-jsonschema](https://github.com/chrusty/protoc-gen-jsonschema)\n* [protobuf-jsonschema](https://github.com/devongovett/protobuf-jsonschema)\n* [grpc-gateway](https://github.com/grpc-ecosystem/grpc-gateway) - reverse-proxy server which translates a RESTful JSON API into gRPC. Optionally emitting API definition for Swagger.\n\n### gRPC to Elm\n\n* [elm-protobuf](https://github.com/tiziano88/elm-protobuf)\n\n### gRPC to SQL\n\n* [protoc-gen-persist](https://github.com/tcncloud/protoc-gen-persist)\n\n### gRPC to Scala\n\n* [ScalaPB](https://scalapb.github.io/scala.js.html)\n\n## Thrift\n\n### Thrift to Typescript\n\n* [thrift-typescript](https://github.com/creditkarma/thrift-typescript)\n\n## SQL\n\n### SQL to Typescript\n\n* [schemats](https://github.com/SweetIQ/schemats)\n\n### SQL to Flow\n\n* [database-types](https://github.com/gajus/database-types)\n\n### SQL to GraphQL\n\n* [sql-to-graphql](https://github.com/rexxars/sql-to-graphql)\n* [rdbms-to-graphql](https://github.com/ebridges/rdbms-to-graphql)\n* [graphile](https://www.graphile.org/)\n* [postgraphile](https://github.com/graphile/postgraphile)\n\n### SQL to gRPC\n\n* [go-grpc-sql](https://github.com/CanonicalLtd/go-grpc-sql)\n\n## WebIDL\n\nhttps://developer.microsoft.com/en-us/microsoft-edge/platform/catalog/ - checkout \"Visualization\" tab.\n\n### WebIDL to TypeScript\n\n* [TSJS-lib-generator](https://github.com/Microsoft/TSJS-lib-generator)\n* [idl2typings](https://github.com/RicoP/idl2typings)\n\n### WebIDL to Flow\n\n* [webidl-to-flow](https://github.com/motiz88/webidl-to-flow)\n\n## Go\n\n### Go to TypeScript\n\n* [typescriptify-golang-structs](https://github.com/tkrajina/typescriptify-golang-structs)\n* [struct2ts](https://github.com/OneOfOne/struct2ts)\n\n### Go to Flow\n\n* [go2flow](https://github.com/kristiehoward/go2flow)\n\n## Kotlin\n\n### Kotlin to TypeScript\n\n* [ts-generator](https://github.com/ntrrgc/ts-generator)\n\n## Runtime types to static types\n\n* [type-profile](https://github.com/fhinkel/type-profile) for JavaScript\n* [MonkeyType](https://github.com/Instagram/MonkeyType) for Python\n* [ruby-type-inference](https://github.com/JetBrains/ruby-type-inference) for Ruby\n\n## Runtime type system\n\nWhy do you need Runtime and Static type system together? See [this discussion](https://github.com/gcanti/io-ts/issues/18).\n\n### Compatible with TypeScript\n\n* [ts-runtime](https://fabiandev.github.io/ts-runtime/) - TypeScript Runtime Type Checks Playground\n* [io-ts](https://github.com/gcanti/io-ts) - TypeScript compatible runtime type system for IO validation\n\n### Compatible with Flow\n\n* [flow-runtime](https://codemix.github.io/flow-runtime/) - Flow-compatible runtime type system for JavaScript.\n* [flow-io](https://github.com/gcanti/flow-io) - (deprecated) Flow compatible runtime type system for IO validation\n\n### Incompatible with existing static type systems\n\n* [React PropTypes](https://reactjs.org/docs/typechecking-with-proptypes.html)\n* [tcomb](https://github.com/gcanti/tcomb) - Type checking and DDD for JavaScript\n* [hm-def](https://github.com/xodio/hm-def) - Runtime type checking for JS with Hindley Milner signatures\n* [ftor](https://github.com/kongware/ftor) - ftor enables ML-like type-directed, functional programming with Javascript including reasonable debugging\n* [sanctuary-def](https://github.com/sanctuary-js/sanctuary-def) - Run-time type system for JavaScript. See also [sanctuary#254](https://github.com/sanctuary-js/sanctuary/issues/254)\n* [rfx](https://github.com/ericelliott/rfx) - Self documenting runtime interfaces.\n* [rtype](https://github.com/ericelliott/rtype) - Intuitive structural type notation for JavaScript.\n\nSee also:\n\n* [getdocs](https://github.com/marijnh/getdocs) - Getdocs is not JSDoc\n* [ndoc](https://github.com/nodeca/ndoc/blob/master/syntax.md) - js port of pdoc, with extentions\n* [Algebraic Data Types](https://github.com/stoeffel/awesome-fp-js#algebraic-data-types) in awesome-fp-js\n\n## Property based testing\n\n### Testing with TypeScript\n\n* [testcheck-js](https://github.com/leebyron/testcheck-js)\n* [quickcheck-ts](https://github.com/gyzerok/quickcheck-ts)\n* [Type Test Scripts for TypeScript Testing](https://cs.au.dk/~amoeller/papers/tstest/paper.pdf)\n\n### Testing with Flow\n\n* [babel-plugin-transform-flow-to-gen](https://github.com/unbounce/babel-plugin-transform-flow-to-gen)\n* [Randomized Testing in JavaScript Without Lifting a Finger](https://medium.com/@gabescholz/randomized-testing-in-javascript-without-lifting-a-finger-8d616d7048af)\n* [jest-runner-flowtype](https://github.com/binygal/jest-runner-flowtype)\n\n### Incompatible with existing static type systems\n\n* [jsverify](http://jsverify.github.io/)\n\n### Testing with Elm\n\n* [elm-check](https://github.com/TheSeamau5/elm-check)\n\n### Testing with Reason\n\n* [qcheck](https://github.com/c-cube/qcheck)\n\n### Testing with PureScript\n\n* [purescript-quickcheck](https://github.com/purescript/purescript-quickcheck)\n\n## Languages that compile to JS\n\n(And not mentioned above)\n\n* [purescript](https://github.com/purescript/documentation/blob/master/language/Types.md)\n* [scala.js](https://www.scala-js.org/doc/interoperability/facade-types.html)\n* [fable](http://fable.io/api/), [F# Language Reference](https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/index)\n\nSee also:\n\n* [List of languages that compile to JS](https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js)\n* [Functional Languages that Compile to JavaScript](https://github.com/stoeffel/awesome-fp-js#functional-languages-that-compile-to-javascript)\n\n## Schemas\n\n* [Awesome json: format extensions](https://github.com/burningtree/awesome-json#format-extensions)\n* [The Last JSON Spec](https://www.tbray.org/ongoing/When/201x/2017/12/14/RFC-8259-STD-90)\n* [schemaform](http://schemaform.io/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstereobooster%2Ftype-o-rama","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstereobooster%2Ftype-o-rama","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstereobooster%2Ftype-o-rama/lists"}