Saltar al contenido

Comentarios TypeScript a JSDoc

Convierte tipos de funciones e interfaces TypeScript en comentarios JSDoc para que los tipos sobrevivan al JavaScript plano.

Entrada
Salida

Comentarios TypeScript a JSDoc

Pega una función TypeScript, función flecha, interfaz o alias de tipo y esta herramienta escribe el comentario JSDoc coincidente arriba — `@param` para cada parámetro, `@returns` para el tipo de retorno, y `@typedef` con líneas `@property` para interfaces y alias de tipo con forma de objeto. Está diseñado para mover código de `.ts` a `.js` plano sin perder la información de tipo que un editor o un linter consciente de JSDoc aún necesita.

"Eliminar anotaciones de TypeScript" quita la sintaxis de tipo de la firma misma — tipos de parámetros, tipos de retorno, listas de parámetros genéricos — dejando JavaScript válido con la misma información ahora viviendo en el comentario; apágalo para mantener TypeScript sin cambios y simplemente agregar documentación encima. "Generar @typedef para interfaces" convierte una `interface` o un `type` de objeto en un bloque typedef; "Agregar @template para genéricos" documenta parámetros de tipo como `<T>`; "Agregar @throws de sentencias throw" escanea el cuerpo de cada función buscando `throw new SomeError(...)` e lista los tipos de error distintos encontrados. El estilo de comentario cambia entre el bloque convencional de asterisco alineado y una variante más compacta de una sola línea de apertura, y el ancho de línea controla dónde se ajusta una línea larga.

La herramienta lee declaraciones de función de nivel superior, funciones flecha asignadas a un `const` o `let`, interfaces y alias de tipo con forma de objeto — las declaraciones para las que JSDoc tiene una etiqueta. Las anotaciones de tipo en variables locales dentro de un cuerpo de función, y los métodos definidos dentro de una clase o un literal de objeto, se dejan como están escritos; reescribir cada tipo en un archivo de forma segura necesita un compilador completo, y esto permanece como un script pequeño y rápido que se ejecuta en el momento en que dejas de escribir.

Todo se ejecuta localmente en tu navegador — tu código nunca se carga, así que pegar desde un proyecto privado es seguro. Copia el resultado, descárgalo como archivo .txt, o envía la salida directamente de vuelta a la entrada para ejecutar otra herramienta en ella después.

Preguntas frecuentes

¿Funciona con interfaces así como con funciones?
Sí. Las interfaces y alias de tipo con forma de objeto se convierten en un bloque @typedef con una línea @property por miembro; un alias de tipo de unión o primitivo se convierte en un @typedef de una sola línea.
¿Qué le sucede a los tipos TypeScript originales?
Con "Eliminar anotaciones de TypeScript" activado, la sintaxis de tipo se quita del código y vive solo en el comentario arriba, dejando JavaScript plano. Apágalo para mantener TypeScript tal como está y agregar JSDoc encima.
¿Documenta métodos dentro de una clase?
No. La herramienta documenta funciones de nivel superior, funciones flecha asignadas a un const o let, interfaces y alias de tipo — los métodos de clase y de literal de objeto se dejan sin cambios.
¿De dónde provienen los tags @throws?
La herramienta escanea el cuerpo de cada función buscando sentencias throw. Un throw new SomeError(...) se reporta como @throws {SomeError}; un throw desnudo se reporta como @throws {Error}.
¿Mi código se carga en algún lugar?
No. La conversión se ejecuta completamente en tu navegador — tu código nunca sale de tu dispositivo.