Przejdź do treści

TypeScript na komentarze JSDoc

Konwertuj typy TypeScriptu funkcji i interfejsów na komentarze JSDoc, aby typy przetrwały w zwykłym JavaScripcie.

Wejście
Wynik

TypeScript na komentarze JSDoc

Wklej funkcję TypeScript, funkcję strzałkową, interfejs lub alias typu, a to narzędzie napiszę pasujący komentarz JSDoc — `@param` dla każdego parametru, `@returns` dla typu zwracanego i `@typedef` z liniami `@property` dla interfejsów i aliasów typów. Został opracowany do przeniesienia kodu z `.ts` do zwykłego `.js` bez utraty informacji o typach, które edytor lub linter obsługujący JSDoc nadal potrzebuje.

"Usuń adnotacje TypeScriptu" usunie składnię typów z podpisu — typy parametrów, typy zwracane, listy parametrów generycznych — i pozostawi prawidłowy JavaScript z tymi samymi informacjami w komentarzu; wyłącz to, jeśli chcesz zachować TypeScript bez zmian i tylko dodać dokumentację. "Generuj @typedef dla interfejsów" zmieni `interface` lub obiekt `type` na blok typedef; "Dodaj @template dla typów ogólnych" udokumentuje parametry typu takie jak `<T>`; "Dodaj @throws z instrukcji throw" skanuje treść każdej funkcji w poszukiwaniu `throw new SomeError(...)` i wyświetla znalezione typy błędów. Styl komentarza przełącza się między konwencjonalnym blokiem z wyrównanymi gwiazdkami a bardziej kompaktową wariantą z otwarciem w jednym wierszu, a szerokość linii kontroluje, gdzie długa linia się łamie.

Narzędzie odczytuje deklaracje funkcji na najwyższym poziomie, funkcje strzałkowe przypisane `const` lub `let`, interfejsy i aliasy typów w kształcie obiektu — deklaracje, dla których JSDoc ma znacznik. Adnotacje typów dla zmiennych lokalnych w treści funkcji i metody zdefiniowane w klasie lub literale obiektu pozostają niezmienione; bezpieczne przepisanie każdego typu w pliku wymaga pełnego kompilatora, a to narzędzie pozostaje małym i szybkim skryptem uruchamianym w momencie, gdy przestaniesz pisać.

Wszystko działa lokalnie w przeglądarce — Twój kod nigdy nie będzie przesyłany, więc wklejanie z prywatnego projektu jest bezpieczne. Skopiuj wynik, pobierz go jako plik .txt lub wyślij wynik bezpośrednio z powrotem na wejście i uruchom inne narzędzie.

Częste pytania

Czy działa także na interfejsach oprócz funkcji?
Tak. Interfejsy i aliasy typów w kształcie obiektu staną się blokiem @typedef z jedną linią @property na członka; alias typu primitywnego lub unii stanie się jednoliniowym @typedef.
Co się stanie z oryginalnymi typami TypeScriptu?
Gdy opcja "Usuń adnotacje TypeScriptu" jest włączona, składnia typów jest usuwana z kodu i istnieje tylko w komentarzu nad nim, pozostawiając czysty JavaScript. Wyłącz to, aby zachować TypeScript bez zmian i dodać JSDoc nad nim.
Czy dokumentuje metody wewnątrz klasy?
Nie. Narzędzie dokumentuje funkcje na najwyższym poziomie, funkcje strzałkowe przypisane const lub let, interfejsy i aliasy typów — metody klas i literałów obiektów pozostają niezmienione.
Skąd pochodzą tagi @throws?
Narzędzie skanuje ciało każdej funkcji w poszukiwaniu instrukcji throw. `throw new SomeError(...)` jest raportowany jako @throws {SomeError}; pusty throw jest raportowany jako @throws {Error}.
Czy mój kod jest przesyłany gdziekolwiek?
Nie. Konwersja odbywa się całkowicie w przeglądarce — Twój kod nigdy nie opuszcza Twoje urządzenie.