Interfaces are familiar for object contracts and declaration merging; type aliases compose naturally with unions and other aliases. TypeDraft supports both without claiming one is universally better.
Follow the owning codebase
Use the style already established in the consuming package unless a concrete TypeScript feature requires another form.
The declaration style does not add evidence
Switching from interface to type changes syntax, not what the JSON sample proved. Review optionality, unions and null independently, and keep runtime validation at untrusted boundaries.
Review against the real contract
Compile the generated file, then compare every property with the authoritative API documentation, OpenAPI document or JSON Schema. Add fields absent from the sample, correct nullable and optional rules, and use runtime validation at untrusted boundaries. Keep a representative fixture beside the reviewed type so later payload changes are visible.