Перейти до вмісту

TypeScript у коментарі JSDoc

Перетворіть типи функцій та інтерфейсів TypeScript у коментарі JSDoc, щоб типи збереглися у простому JavaScript.

Введення
Вихід

TypeScript у коментарі JSDoc

Вставте функцію TypeScript, стрілкову функцію, інтерфейс або псевдонім типу, і цей інструмент напише відповідний коментар JSDoc над нею — `@param` для кожного параметра, `@returns` для типу повернення та `@typedef` з рядками `@property` для інтерфейсів та псевдонімів типів об'єктної форми. Він призначений для перенесення коду з `.ts` у звичайний `.js` без втрати інформації про типи, яка знадобиться редакторові або linter, що підтримує JSDoc.

"Видаляти анотації TypeScript" вилучає синтаксис типів із самої сигнатури — типи параметрів, типи повернення, списки параметрів узагальнень — залишаючи коректний JavaScript із тією ж інформацією, яка тепер знаходиться у коментарі; вимкніть його, щоб залишити TypeScript без змін і просто додати документацію зверху. "Генерувати @typedef для інтерфейсів" перетворює `interface` або об'єктний `type` у блок typedef; "Додавати @template для узагальнень" документує параметри типів на кшталт `<T>`; "Додавати @throws з операторів throw" сканує тіло кожної функції на `throw new SomeError(...)` та перелічує знайдені різні типи помилок. Стиль коментаря перемикається між традиційним блоком із вирівняними зірочками та компактнішим варіантом із відкриваючою зірочкою в один рядок, а ширина рядка керує переносом довгих рядків.

Інструмент читає оголошення функцій верхнього рівня, стрілкові функції, призначені `const` або `let`, інтерфейси та псевдоніми типів об'єктної форми — оголошення, для яких JSDoc має тег. Анотації типів на локальних змінних усередині тіла функції та методи, визначені всередині класу або літерала об'єкту, залишаються як написано; безпечне переписування кожного типу у файлі вимагає повного компілятора, і цей інструмент залишається невеликим, швидким скриптом, що працює в момент припинення введення тексту.

Все працює локально у вашому браузері — ваш код ніколи не завантажується, тому вставлення коду з приватного проекту безпечно. Скопіюйте результат, завантажте його як файл .txt або відправте вихід прямо назад на вхід, щоб запустити на ньому інший інструмент.

FAQ

Чи працює він із інтерфейсами та функціями?
Так. Інтерфейси та псевдоніми типів об'єктної форми стають блоком @typedef з одним рядком @property для кожного члена; тип союзу або примітивний псевдонім типу замість цього стає однорядковим @typedef.
Що відбувається з вихідними типами TypeScript?
Якщо "Видаляти анотації TypeScript" увімкнено, синтаксис типів вилучається з коду і існує тільки у коментарі над ним, залишаючи звичайний JavaScript. Вимкніть його, щоб залишити TypeScript як є, і додати JSDoc над ним.
Чи документує він методи всередині класу?
Ні. Інструмент документує функції верхнього рівня, стрілкові функції, призначені const або let, інтерфейси та псевдоніми типів — методи класу та літерала об'єкту залишаються без змін.
Звідки беруться теги @throws?
Інструмент сканує тіло кожної функції на оператори throw. Throw new SomeError(...) повідомляється як @throws {SomeError}; простий throw повідомляється як @throws {Error}.
Чи завантажується мій код кудись?
Ні. Перетворення працює повністю у вашому браузері — ваш код ніколи не залишає вашого пристрою.