Где задокументирован синтаксис комментариев TypeScript?


166

Задокументирован ли где-нибудь синтаксис комментариев TypeScript?

И случайно ли он теперь поддерживает систему C # ///?

Ответы:


61

Теперь правильный синтаксис используется TSDoc . Это позволит вам понимать ваши комментарии с помощью кода Visual Studio или других инструментов документации.

Хороший обзор синтаксиса доступен здесь и особенно здесь . Точная спецификация должна быть «скоро» написана .

Еще один файл, который стоит проверить, это тот, где вы увидите полезные стандартные теги.

Примечание : вы не должны использовать JSDoc, как описано на главной странице TSDoc: почему JSDoc не может быть стандартом? К сожалению, грамматика JSDoc не строго определена, а скорее выведена из поведения конкретной реализации. Большинство стандартных тегов JSDoc озабочены предоставлением аннотаций типов для простого JavaScript, что не имеет значения для строго типизированного языка, такого как TypeScript. TSDoc устраняет эти ограничения, а также решает более сложные задачи.


177

Будущее

Команда TypeScript и другие вовлеченные команды TypeScript планируют создать стандартную формальную спецификацию TSDoc. 1.0.0Проект не был завершен еще: https://github.com/Microsoft/tsdoc#where-are-we-on-the-roadmap

введите описание изображения здесь

Текущий

TypeScript использует JSDoc. например

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

Чтобы узнать jsdoc: https://jsdoc.app/

демонстрация

Но вам не нужно использовать расширения аннотации типов в JSDoc.

Вы можете (и должны) по-прежнему использовать другие теги блока jsdoc, например, @returnsи т. Д.

пример

Просто пример. Сосредоточьтесь на типах (не содержание).

Версия JSDoc (типы уведомлений в документах):

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

Версия TypeScript (обратите внимание на перемещение типов):

/**
 * 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;
}

1
Как говорит Бас! Хороший пример использования можно найти в jQuery.d.ts в DefiniteTyped
John Reilly,

1
который, конечно, получил jsdoc'ом @JohnnyReilly! :) github.com/borisyankov/DefiniteTyped/blame/master/jquery/…
Басарат

14
Это не хороший «лучший ответ», так как он не объясняет параметры, свойства и возвращаемые значения.
Пиранья


5
Это больше не актуально. Смотрите обновленный ответ ниже.
Qortex

59

Вы можете добавить информацию о параметрах, возвратах и ​​т. Д., Используя:

/**
* 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()
}

Это приведет к тому, что редакторы, такие как VS Code, отобразят его следующим образом:

введите описание изображения здесь


1
Знаешь ли ты эту клавишу в VSCODE
jet_choong

3
Если вы начнете печатать, /**затем нажмите tabна строку над функцией, vs-code поможет вам заполнить комментарий JSDoc параметрами
Sharpiro

14

Вы можете использовать комментарии как в обычном JavaScript:

Синтаксис TypeScript - это расширенный набор синтаксиса Ecmascript 5 (ES5). [...]

Этот документ описывает синтаксическую грамматику, добавленную TypeScript

Кроме этого, я нашел это только о комментариях в спецификации языка:

TypeScript также предоставляет программистам JavaScript систему необязательных аннотаций типов . Эти аннотации типов похожи на комментарии JSDoc, найденные в системе Closure, но в TypeScript они интегрированы непосредственно в синтаксис языка. Эта интеграция делает код более читабельным и снижает затраты на обслуживание синхронизации аннотаций типов с соответствующими им переменными.

11.1.1 Зависимости исходных файлов:

Комментарий формы /// <reference path="..."/>добавляет зависимость от исходного файла, указанного в аргументе пути. Путь разрешается относительно каталога, содержащего исходный файл

Источник:
https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md


Ссылка на источник не работает.
Павло

1
Заменил его ссылкой на источник спецификаций на GitHub. Также доступно в виде документов Word и PDF: github.com/Microsoft/TypeScript/tree/master/doc
CodeManX,

3

TypeScript является строгим синтаксическим расширенным набором JavaScript, следовательно

  • Однострочные комментарии начинаются с //
  • Многострочные комментарии начинаются с / * и заканчиваются * /
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.