Przejdź do treści

Konwerter JSON na komentarze JSDoc — Numio

Tworzy komentarz JSDoc @typedef z jednym wierszem @property dla każdego klucza próbki JSON. Zagnieżdżone klucze używają ścieżek z kropkami, np. address.city, klucze elementów tablic — name[].key, a klucze opcjonalne — [brackets].

Pobieranie autouzupełniania edytora dla odpowiedzi API w zwykłym projekcie JavaScript.

JSON

JSDoc

Kiedy go używać

  • Pobieranie autouzupełniania edytora dla odpowiedzi API w zwykłym projekcie JavaScript.
  • Włączanie // sprawdzania typu @ts-check dla danych JSON bez przechodzenia do TypeScript.

Jak używać

  1. Wklej obiekt JSON do edytora.
  2. Sprawdź linie @property po prawej stronie: typy pochodzą z przykładowych wartości, na przykład string[] dla tagów i obiekt dla adresu.
  3. Skopiuj komentarz, zmień nazwę typedef z json na prawdziwe imię i użyj go z @type {YourName}.

Wejście JSON

{
  "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
 */

Szczegóły i ograniczenia

Komentarz jest generowany w Twojej przeglądarce; żadne dane nie są wysyłane na serwer. Nie ma żadnych ustawień.

Wszystkie elementy tablicy są łączone: brakujące klucze w niektórych elementach są zapisywane w nawiasach kwadratowych jako opcjonalne, np. [zamówienia[].gift].

Wartość, która jest tylko null, jest wpisana {null}; null obok wartości rzeczywistych daje sumę taką jak {string|null}. Puste tablice są wpisywane jako {Array}.

Zachowaj identyfikatory takie jak 001 jako ciągi znaków na wejściu; po przeanalizowaniu jako liczby, zera wiodące zostaną utracone.

FAQ

W jaki sposób dokumentowane są tablice obiektów?

Wpisuje się tablicę obiekt[], a klucze elementów są wyświetlane wraz ze ścieżkami nazwa[].klucz, takimi jak zamówienia[].sku, łączące klucze wszystkich elementów.

Czy mogę przekonwertować tablicę JSON w katalogu głównym?

Tak. Kształt elementu to @typedef {object} jsonItem z jego właściwościami, po którym następuje @typedef {jsonItem[]} json dla tablicy.

Czy TypeScript rozumie wygenerowany typedef?

Tak, TypeScript odczytuje @typedef z zagnieżdżonymi ścieżkami @property w plikach .js, gdy włączone jest checkJs lub // @ts-check. Najpierw wymień goły {null} na prawdziwy typ.

Specyfikacje i referencje