YAML to TypeScript converter
Convert YAML to TypeScript: interfaces from a sample YAML file (app config, docker-compose, CI settings), with a named type for every nested object.
What you get
- YAML to TypeScript interface definitions: TypeScript types from YAML config, one named interface per nested object.
- Checked by the TypeScript compiler: your YAML data type-checks against the result in strict mode.
- Anchors and merge keys are expanded first, so the types describe what your app actually reads.
- Turn a YAML config to TypeScript types, so code that loads the config is fully typed.
- Private and free: everything runs in your browser, nothing is uploaded, and there is no sign-up.
How each result is checked
- Step 1: Your YAML is parsed strictly as YAML 1.2: duplicate keys and syntax errors are rejected with the line number.
- Step 1: The JSON output is parsed back and compared with the parsed YAML, value by value.
- Step 2: The generated code is compiled with the real TypeScript compiler in strict mode.
- Step 2: Your JSON itself is type-checked against the root type. It must pass.
What can't convert exactly
- Anchors (&), aliases (*) and merge keys (<<) are expanded into full copies, because JSON has no references.
- Comments and custom tags such as !Ref are not data, so they are not carried over. You get a warning when this happens.
- Several documents separated by --- become one JSON array.
- Types can only describe what the sample shows. A field that is null in every sample is typed as null; add a sample with a real value for a better type.
- Paste an array with several records to detect which fields are optional.
- Numbers are typed as number. Use the Zod converter if you need to check whole numbers at runtime.
Questions
How is a two-step conversion checked?
Your input is converted to JSON first, then to the target format. Each step has its own independent check, and both must pass. The checks of both steps are listed under every result.
Is my data uploaded?
No. Everything runs in your browser, in a background worker. Nothing is sent to a server.
How do I convert YAML to TypeScript online?
Paste your YAML or open a file on the left (or click Example). The TypeScript appears on the right as you type, already checked. Copy it, or download it as a file. Nothing is uploaded.
Can the TypeScript output be wrong?
Every result is checked before it is shown (the checks are listed on this page). If a check fails, the page says "Review needed" and why, instead of presenting the output as correct, and anything that cannot convert exactly is named in the notes.