TypeScript注释的语法在哪里记录?


Answers:


61

现在,正确的语法是TSDoc使用的语法。它将使您的注释可以被Visual Studio Code或其他文档工具理解。

有关语法的概述,请参见此处尤其是此处。准确的规格应该是“很快”写出来的

另一个值得检查的文件是文件,您将在其中看到有用的标准标记。

注意:请勿使用TSDoc主页上所述的JSDoc为什么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 块标记,例如@returnsetc。

只是一个例子。关注类型(而不是内容)。

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
正如巴斯所说!有关用法的一个很好的例子,请查看DefinitelyTyped的jQuery.d.ts
John Reilly

1
@JohnnyReilly哪个当然被jsdoc'ed了!:) github.com/borisyankov/DefinitelyTyped/blame/master/jquery/...
basarat

14
这不是一个好的“最佳答案”,因为它没有解释参数,属性和返回值。
Piranha


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 19-11-5

3
如果您开始输入/**tab
文字

14

您可以像在常规JavaScript中那样使用注释:

TypeScript语法是Ecmascript 5(ES5)语法的超集。[...]

本文档介绍了TypeScript添加的语法语法

除此之外,我仅在语言规范中找到有关注释的信息:

TypeScript还为JavaScript程序员提供了可选类型注释的系统。这些类型注释类似于在Closure系统中找到的JSDoc注释,但是在TypeScript中,它们直接集成到语言语法中。这种集成使代码更具可读性,并减少了将类型注释与其相应变量同步的维护成本。

11.1.1源文件依赖关系:

形式的注释/// <reference path="..."/>会增加对path参数中指定的源文件的依赖。相对于包含源文件的目录的路径被解析

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


源链接已断开。
巴甫洛

1
将其替换为指向GitHub上的specs源的链接。也可作为Word和PDF文档获得:github.com/Microsoft/TypeScript/tree/master/doc
CodeManX

3

TypeScript是JavaScript的严格语法超集,因此

  • 单行注释以//开头
  • 多行注释以/ *开头,以* /结束
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.