Gamitin itong JSON to TypeScript generator para gumawa ng mga interface at uri na ligtas sa uri mula sa mga sample ng JSON para sa mga frontend na app at mga serbisyo ng Node.js.
Hakbang 1 – Mag-paste ng sample ng JSON
- Mag-paste ng kinatawan ng JSON object o array sa kaliwang editor.
- Isama ang mga nested na bagay, array, at nullable na field para mahinuha nang tama ang mga uri.
- Gamitin ang
Import upang i-load ang JSON mula sa isang file, URL, o sample na data.
Hakbang 2 – Pumili ng mga opsyon sa pagbuo ng TypeScript
- Magtakda ng
Root Type Name na tumutugma sa iyong modelo (halimbawa Root). - Pumili ng null handling na diskarte (
Optional (?) vs Union (| null)) upang tumugma sa iyong codebase. - Magpasya kung gusto mo ng
interfaces o type alias para sa output.
Hakbang 3 – Suriin ang nabuong code
- Suriin ang mga pangalan ng field, mga uri, at kung paano na-modelo ang mga array/object.
- Iaayos ang mga opsyon tulad ng
Root Type Name, null handling, at frameworks kung available. - Kung mali ang natukoy na field, i-tweak ang iyong sample na JSON at muling buuin.
Hakbang 4 – Gamitin ang mga nabuong uri
- I-paste ang output sa iyong proyekto at i-export ito mula sa iyong mga uri ng module.
- Gamitin ang mga uri para sa mga tugon ng API, DTO, at mga hangganan ng pag-parse ng runtime.
- Mag-regenerate kapag nagbago ang iyong JSON payload para panatilihing naka-sync ang mga kliyente.
Hakbang 5 – Kopyahin o i-download
- Kopyahin ang output sa iyong proyekto o i-download ito bilang isang file.
- Patakbuhin ang iyong formatter/linter upang tumugma sa istilo ng iyong code.
- magdagdag ng mga library ng pag-parse/serialization ng JSON kung kailangan ng iyong wika ang mga ito.
Halimbawang output (pinasimple)
// input ng JSON
{
"id": 123,
"name": "Maeve Winters",
"email": "[email protected]",
"active": true,
"roles": ["admin", "editor"],
"metadata": { "plan": "pro" },
"createdAt": "2024-03-01T10:15:00Z",
"score": 99.5,
"notes": null
}
// Generated TypeScript types (simplified)
export interface Metadata {
plan: string;
}
export interface Root {
id: number;
name: string;
email: string | null;
active: boolean;
roles: string[];
metadata: Metadata;
createdAt: string;
score: number;
notes: null;
}