JSON Central

JSON to TypeScript

Infer useful TypeScript definitions locally

Generate interfaces or type aliases for nested objects, arrays, primitives, nulls and mixed values without uploading the source.

Browser-local inference

Infer TypeScript definitions from JSON

0 characters · 0 bytes

Waiting for JSON.
No definitions yet

Inference runs entirely in this browser.

Deterministic inference

Consistent types from representative samples

Objects generate named definitions, arrays infer their element types, mixed values become stable unions, and null remains explicit. Object-array samples are merged so fields missing from some records become optional.

Safe property names

Valid TypeScript identifiers remain unquoted. Names containing spaces, punctuation or other unsafe characters are emitted as quoted properties with a clear warning.

Inference has limits

JSON values cannot reveal every intent

An empty array becomes unknown[], numbers cannot reveal branded or integer types, and optional fields are inferred only when multiple objects appear in the same array sample.

Focused TypeScript output

Choose interfaces or type aliases, copy the result, or download a .ts file. Zod schema generation is intentionally outside this module.

FAQs

JSON-to-TypeScript questions

How are mixed arrays represented?

Distinct inferred element types are combined into a deterministic union. Object samples are merged before joining other value types.

Does generation upload JSON?

No. File reading, parsing, inference and output generation happen locally in your browser.