Short answer
- Generated TypeScript types are only as representative as the JSON sample.
- Arrays with different object shapes can create optional fields or unions.
- Review generated types before using them in production code.
Example
A JSON object with id, name, active, and profile fields can become a root interface plus a nested profile interface.
export interface User {
id: number;
name: string;
active: boolean;
profile?: UserProfile;
}Optional fields
When a JSON array contains objects with different keys, a generator may mark missing fields as optional.
That is useful for sample data, but you should still check the real API contract before relying on optional markers.
Unions and nulls
If a field appears as different types across examples, the generated type may become a union such as string | number.
Null values deserve special review. A single null in a sample may mean the field is truly nullable, or it may be an incomplete example.
When to generate schema instead
| Need | Use | Why |
|---|---|---|
| Runtime validation | JSON Schema Generator | Schemas can describe validation rules. |
| Editor autocomplete | TypeScript Type Generator | Types help application code and IDEs. |
| Syntax cleanup | JSON Formatter | Formatting makes the source easier to inspect. |
FAQ
Why did the generator mark a TypeScript field optional?
It usually means at least one object in the sample array did not include that field.
Can generated TypeScript prove an API response is valid?
No. TypeScript helps at development time, but runtime validation needs a validation layer such as JSON Schema or application checks.
Should dates become string or Date?
Most JSON date values arrive as strings. Convert them to Date only when your application actually parses and stores them that way.