$ recombobulate _
home / tips / generate-typescript-types-from-a-json-payload
0

Generate TypeScript Types from a JSON Payload

bagwaa @bagwaa · Mar 25, 2026 · Workflows
generate-typescript-types-from-a-json-payload

Manually writing TypeScript interfaces from a large API response is a chore that Claude can knock out in seconds.

Just paste the JSON and ask:

Convert this API response into TypeScript interfaces.
Use strict types — no `any`. Mark optional fields where they might be absent.

{
  "user": {
    "id": 42,
    "name": "Jane Doe",
    "email": "jane@example.com",
    "roles": ["admin", "editor"],
    "address": {
      "street": "123 Main St",
      "city": "London",
      "postcode": "SW1A 1AA"
    },
    "verified_at": null
  }
}

Claude will produce properly nested interfaces, handle nullable fields with string | null, and use readonly arrays where appropriate — far better than a basic JSON-to-type generator.

You can push further and ask Claude to also generate a Zod schema for runtime validation alongside the static types, or request that it add JSDoc comments explaining each field based on its name and shape.

Also generate a Zod schema that matches these interfaces,
and add JSDoc comments to each field.

Paste the response, get the types — your IDE autocomplete will thank you.

~/recombobulate $ tip --comments --count=0

Log in to leave a comment.

~/recombobulate $ tip --related --limit=3
0
Scan Pending Changes for Security Issues with /security-review

The /security-review command scans your uncommitted changes for injection vectors, auth gaps, hardcoded secrets, and other common vulnerabilities.

bagwaa @bagwaa · 1 hour ago
0
Run Setup Scripts on Every Session with the SessionStart Hook

The SessionStart hook fires when any session begins or resumes, making it ideal for loading environment variables and running one-time setup scripts.

bagwaa @bagwaa · 1 hour ago
0
Write Property-Based Tests with fast-check and Claude

Ask Claude to write property-based tests for your functions using fast-check — it identifies the mathematical invariants in your code and generates tests that cover inputs you'd never enumerate by hand.

bagwaa @bagwaa · 2 hours ago