Ir para o conteúdo
Totalmente local

Comentários TypeScript para JSDoc

Converta tipos de funções e interfaces TypeScript em comentários JSDoc para que os tipos sobrevivam em JavaScript simples.

Entrada
Saída

Comentários TypeScript para JSDoc

Cole uma função TypeScript, função de seta, interface ou alias de tipo e esta ferramenta escreve o comentário JSDoc correspondente acima — `@param` para cada parâmetro, `@returns` para o tipo de retorno, e `@typedef` com linhas `@property` para interfaces e aliases de tipo com forma de objeto. Foi construído para mover código de `.ts` para `.js` simples sem perder as informações de tipo que um editor ou linter compatível com JSDoc ainda precisa.

Remover anotações TypeScript remove a sintaxe de tipo da assinatura em si — tipos de parâmetro, tipos de retorno, listas de parâmetros genéricos — deixando JavaScript válido com as mesmas informações agora vivendo no comentário; desative-a para manter o TypeScript inalterado e apenas adicionar documentação em cima. Gerar @typedef para interfaces transforma uma `interface` ou um `type` de objeto em um bloco typedef; Adicionar @template para genéricos documenta parâmetros de tipo como `<T>`; Adicionar @throws de instruções throw verifica cada corpo de função para `throw new SomeError(...)` e lista os tipos de erro distintos encontrados. O estilo de comentário alterna entre o bloco de estrela alinhada convencional e uma variante mais compacta de abertura em uma linha, e a largura da linha controla onde uma linha longa quebra.

A ferramenta lê declarações de função de nível superior, funções de seta atribuídas a uma `const` ou `let`, interfaces e aliases de tipo com forma de objeto — as declarações que JSDoc tem uma tag para. Anotações de tipo em variáveis locais dentro de um corpo de função, e métodos definidos dentro de uma classe ou um literal de objeto, são deixados como escritos; reescrever cada tipo em um arquivo com segurança precisa de um compilador completo, e isso permanece um script pequeno e rápido que funciona no momento em que você para de digitar.

Tudo funciona localmente no seu navegador — seu código nunca é enviado, então colar de um projeto privado é seguro. Copie o resultado, baixe-o como um arquivo .txt ou envie a saída diretamente de volta para a entrada para executar outra ferramenta nela a seguir.

FAQ

Funciona em interfaces assim como em funções?
Sim. Interfaces e aliases de tipo com forma de objeto tornam-se um bloco @typedef com uma linha @property por membro; um alias de tipo primitivo ou união torna-se um @typedef de uma única linha.
O que acontece com os tipos TypeScript originais?
Com Remover anotações TypeScript ativa, a sintaxe de tipo é removida do código e vive apenas no comentário acima, deixando JavaScript simples. Desative-a para manter o TypeScript como está e adicionar JSDoc em cima.
Documenta métodos dentro de uma classe?
Não. A ferramenta documenta funções de nível superior, funções de seta atribuídas a uma const ou let, interfaces e aliases de tipo — métodos de classe e de literal de objeto são deixados inalterados.
De onde vêm as tags @throws?
A ferramenta verifica cada corpo de função para instruções throw. Um throw new SomeError(...) é relatado como @throws {SomeError}; um throw simples é relatado como @throws {Error}.
Meu código é enviado para algum lugar?
Não. A conversão funciona integralmente no seu navegador — seu código nunca sai do seu dispositivo.