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


165

Чи документований синтаксис коментарів 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 DefinitelyTyped's
John Reilly

1
що звичайно отримав jsdoc'ed від @JohnnyReilly! :) github.com/borisyankov/DefinitelyTyped/blame/master/jquery/…
basarat

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, відображатимуть його як таке:

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


1
Чи знаєте ви клавішу швидкого доступу для цього в VSCODE
jet_choong

3
Якщо ви почнете вводити текст, /**тоді натисніть tabна рядок над функцією, vs-code допоможе вам заповнити коментар JSDoc з параметрами
Sharpiro

14

Ви можете використовувати коментарі, як у звичайному JavaScript:

Синтаксис TypeScript - це набір синтаксису Ecmascript 5 (ES5). [...]

Цей документ описує синтаксичну граматику, додану TypeScript

Окрім цього, я знайшов це лише щодо коментарів у мовних специфікаціях:

TypeScript також надає програмістам JavaScript систему необов'язкових анотацій типу . Ці типові анотації схожі на коментарі JSDoc, знайдені в системі закриття, але в 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.