JSON naar JSDoc-opmerkingenconverter — Numio
Bouwt een JSDoc @typedef-opmerking met één @property-regel per sleutel uit een JSON-voorbeeld. Geneste sleutels gebruiken puntpaden zoals adres.stad, sleutels van array-items naam[].key en optionele sleutels [haakjes].
Automatische aanvulling van de editor verkrijgen voor een API-antwoord in een eenvoudig JavaScript-project.
JSON
JSDoc
Wanneer gebruik je dit?
- Automatische aanvulling van de editor verkrijgen voor een API-antwoord in een eenvoudig JavaScript-project.
- // @ts-check typecontrole inschakelen voor JSON-gegevens zonder naar TypeScript te gaan.
Hoe werkt het
- Plak een JSON-object in de editor.
- Controleer de @property-regels aan de rechterkant: typen komen uit de voorbeeldwaarden, bijvoorbeeld string[] voor tags en object voor adres.
- Kopieer de opmerking, hernoem de typedef van json naar een echte naam en gebruik deze met @type {YourName}.
JSON-ingang
{
"id": 42,
"name": "Ada",
"tags": ["math", "poetry"],
"address": { "city": "London", "zip": "NW1" },
"orders": [
{ "sku": "A1", "qty": 2 },
{ "sku": "B7", "qty": 1, "gift": true }
],
"deletedAt": null
}JSDoc @typedef
/**
* @typedef {object} json
* @property {number} id
* @property {string} name
* @property {string[]} tags
* @property {object} address
* @property {string} address.city
* @property {string} address.zip
* @property {object[]} orders
* @property {string} orders[].sku
* @property {number} orders[].qty
* @property {boolean} [orders[].gift]
* @property {null} deletedAt
*/Details en beperkingen
De reactie wordt gegenereerd in uw browser; er worden geen gegevens naar een server verzonden. Er zijn geen instellingen.
Alle items van een array worden samengevoegd: sleutels die bij sommige items ontbreken, worden tussen vierkante haakjes geschreven als optioneel, zoals [orders[].gift].
Een waarde die alleen null is, wordt getypt {null}; null naast echte waarden geeft een unie zoals {string|null}. Lege arrays krijgen het type {Array}.
Bewaar ID's zoals 001 als strings in de invoer; eenmaal geparseerd als getallen gaan de voorloopnullen verloren.
FAQ
Hoe worden arrays van objecten gedocumenteerd?
De array is getypt object[] en de itemsleutels worden weergegeven met naam[].key-paden, zoals orders[].sku, waarbij de sleutels van alle items worden gecombineerd.
Kan ik een JSON-array in de root converteren?
Ja. De itemvorm wordt @typedef {object} jsonItem met zijn eigenschappen, gevolgd door @typedef {jsonItem[]} json voor de array.
Begrijpt TypeScript de gegenereerde typedef?
Ja, TypeScript leest @typedef met geneste @property-paden in .js-bestanden wanneer checkJs of // @ts-check is ingeschakeld. Vervang eerst een kale {null} door het echte type.