¿Dónde se documenta la sintaxis de los comentarios de TypeScript?

165

¿La sintaxis de los comentarios de TypeScript está documentada en alguna parte?

Y por casualidad, ¿ahora es compatible con el ///sistema C # ?

David Thielen
fuente

Respuestas:

61

La sintaxis correcta es ahora la utilizada por TSDoc . Le permitirá que sus comentarios sean entendidos por Visual Studio Code u otras herramientas de documentación.

Una buena descripción general de la sintaxis está disponible aquí y especialmente aquí . La especificación precisa debe escribirse "pronto" .

Otro archivo que vale la pena revisar es este, donde verá etiquetas estándar útiles.

Nota : no debe usar JSDoc, como se explica en la página principal de TSDoc: ¿Por qué JSDoc no puede ser el estándar? Desafortunadamente, la gramática JSDoc no se especifica rigurosamente, sino que se infiere del comportamiento de una implementación particular. La mayoría de las etiquetas JSDoc estándar están preocupadas por proporcionar anotaciones de tipo para JavaScript simple, lo que es una preocupación irrelevante para un lenguaje fuertemente tipado como TypeScript. TSDoc aborda estas limitaciones al tiempo que aborda un conjunto de objetivos más sofisticado.

Qortex
fuente
177

Futuro

El equipo de TypeScript, y otros equipos involucrados en TypeScript, planean crear una especificación TSDoc formal estándar. El 1.0.0borrador aún no se ha finalizado: https://github.com/Microsoft/tsdoc#where-are-we-on-the-roadmap

ingrese la descripción de la imagen aquí

Actual

TypeScript usa JSDoc. p.ej

/** This is a description of the foo function. */
function foo() {
}

Para aprender jsdoc: https://jsdoc.app/

Manifestación

Pero no necesita usar las extensiones de anotación de tipo en JSDoc.

Puede (y debe) seguir utilizando otras etiquetas de bloque jsdoc como @returnsetc.

Ejemplo

Solo un ejemplo. Concéntrese en los tipos (no en el contenido).

Versión JSDoc (tipos de aviso en documentos):

/**
 * Returns the sum of a and b
 * @param {number} a
 * @param {number} b
 * @returns {number}
 */
function sum(a, b) {
    return a + b;
}

Versión de TypeScript (observe la reubicación de los tipos):

/**
 * Takes two numbers and returns their sum
 * @param a first input to sum
 * @param b second input to sum
 * @returns sum of a and b
 */
function sum(a: number, b: number): number {
    return a + b;
}
basarat
fuente
1
Como dice Bas! Para un buen ejemplo de uso, consulte jQuery.d.ts de DefinitelyTyped
John Reilly
1
que por supuesto fue jsdoc'ed por @JohnnyReilly! :) github.com/borisyankov/DefinitelyTyped/blame/master/jquery/…
basarat
14
Esta no es una buena "mejor respuesta", ya que no explica los parámetros, las propiedades y los valores de retorno.
Piranha
55
Esto ya no está actualizado. Ver la respuesta actualizada a continuación.
Qortex
59

También puede agregar información sobre parámetros, devoluciones, etc. utilizando:

/**
* This is the foo function
* @param bar This is the bar parameter
* @returns returns a string version of bar
*/
function foo(bar: number): string {
    return bar.toString()
}

Esto hará que los editores como VS Code lo muestren de la siguiente manera:

ingrese la descripción de la imagen aquí

Sharpiro
fuente
1
¿Conoces la tecla de acceso directo para esto en VSCODE
Jet_choong
3
Si comienza a escribir /**, presione tabuna línea sobre la función, vs-code lo ayuda a completar el comentario JSDoc con parámetros
Sharpiro,
14

Puede usar comentarios como en JavaScript normal:

La sintaxis de TypeScript es un superconjunto de la sintaxis de Ecmascript 5 (ES5). [...]

Este documento describe la gramática sintáctica agregada por TypeScript

Aparte de eso, solo encontré esto sobre los comentarios en las especificaciones del idioma:

TypeScript también proporciona a los programadores de JavaScript un sistema de anotaciones de tipo opcionales . Estas anotaciones de tipo son como los comentarios de JSDoc encontrados en el sistema Closure, pero en TypeScript están integrados directamente en la sintaxis del lenguaje. Esta integración hace que el código sea más legible y reduce el costo de mantenimiento de sincronizar anotaciones de tipo con sus variables correspondientes.

11.1.1 Dependencias de los archivos de origen:

Un comentario del formulario /// <reference path="..."/>agrega una dependencia en el archivo fuente especificado en el argumento de ruta. La ruta se resuelve en relación con el directorio del archivo fuente que contiene

Fuente:
https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md

CodeManX
fuente
El enlace de origen está roto.
Pavlo
1
Lo reemplazó con un enlace a la fuente de especificaciones en GitHub. También disponible como documentos de Word y PDF: github.com/Microsoft/TypeScript/tree/master/doc
CodeManX el
3

TypeScript es un estricto superconjunto sintáctico de JavaScript, por lo tanto

  • Los comentarios de una sola línea comienzan con //
  • Los comentarios de varias líneas comienzan con / * y terminan con * /
Ayushi Jain
fuente