Hoppa till innehåll
100% lokalt

TypeScript till JSDoc-kommentarer

Omvandla TypeScript-funktions- och gränssnittstyper till JSDoc-kommentarer så att typerna bevaras i vanlig JavaScript.

Inmatning
Utmatning

TypeScript till JSDoc-kommentarer

Klistra in en TypeScript-funktion, pillfunktion, gränssnitt eller typelias, och det här verktyget skriver motsvarande JSDoc-kommentar ovanför den — `@param` för varje parameter, `@returns` för returtypen och `@typedef` med `@property`-rader för objektformade gränssnitt och typaliasser. Det är byggd för att flytta kod från `.ts` till vanlig `.js` utan att förlora den typinformation som en redaktör eller en JSDoc-medveten linter fortfarande behöver.

"Ta bort TypeScript-annotationer" tar bort typsyntaxen från själva signaturen — parametertyper, returtyper, generiska parameterlister — vilket gör att giltig JavaScript kvarstår med samma information som nu finns i kommentaren. Stäng av det här alternativet för att hålla TypeScript oförändrad och bara lägga till dokumentation ovanpå det. "Generera @typedef för interfaces" omvandlar ett `interface` eller en objektformad `type` till ett typedef-block. "Lägg till @template för generics" dokumenterar typparametrar som `<T>`; "Lägg till @throws från throw-satser" skannar funktionens brödtext efter `throw new SomeError(...)` och listar de olika feltyper som hittades. Kommentarsstil växlar mellan det konventionella justerade-stjärnor-blocket och en stramare en-rad-öppen variant, och radbredd styr var en lång rad radbrytes.

Verktyget läser funktiondeklarationer på översta nivå, pillfunktioner tilldelade en `const` eller `let`, gränssnitt och objektformade typaliasser — de deklarationer som JSDoc har en tagg för. Typannotationer på lokala variabler inuti funktionens brödtext och metoder som definieras i en klass eller objektliteral lämnas oförändrade. Det är säkert att skriva om alla typer i en fil kräver en fullständig kompilator, och detta förblir ett litet, snabbt skript som körs i det ögonblick du slutar skriva.

Allt körs lokalt i din webbläsare — din kod laddas aldrig upp, så inklistring från ett privat projekt är säkert. Kopiera resultatet, ladda ned det som en .txt-fil eller skicka utdata direkt tillbaka till indata för att köra ett annat verktyg på det.

FAQ

Fungerar det på gränssnitt såväl som funktioner?
Ja. Gränssnitt och objektformade typaliasser blir ett @typedef-block med en @property-rad per medlem; ett union eller primitivt typelias blir istället en en-rads @typedef.
Vad händer med de ursprungliga TypeScript-typerna?
Med "Ta bort TypeScript-annotationer" på, tas typsyntaxen bort från koden och existerar bara i kommentaren ovanför den, vilket lämnar vanlig JavaScript. Stäng av alternativet för att behålla TypeScript som det är och bara lägga till JSDoc ovanpå.
Dokumenterar det metoder inuti en klass?
Nej. Verktyget dokumenterar funktionsdeklarationer på översta nivå, pillfunktioner tilldelade en `const` eller `let`, gränssnitt och typaliasser. Metoder som definieras i en klass eller ett objektliteral lämnas oförändrade.
Var kommer @throws-taggarna ifrån?
Verktyget skannar funktionens brödtext efter throw-satser. En `throw new SomeError(...)` rapporteras som `@throws {SomeError}`; en bar throw rapporteras som `@throws {Error}`.
Laddas min kod upp någonstans?
Nej. Omvandlingen körs helt i din webbläsare — din kod lämnar aldrig din enhet.