TypeScript注释的语法是否记录在任何地方?
不管怎样,它现在是否支持C#///
系统?
答案 0 :(得分:151)
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 :(得分:53)
您可以使用以下方法添加有关参数,退货等的信息:
/**
* 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这样的编辑器将其显示如下:
答案 2 :(得分:26)
现在正确的语法是TSDoc使用的语法。它将使您的注释被Visual Studio Code或其他文档工具理解。
here和especially here提供了对语法的良好概述。精确的规范should be "soon" written up。
另一个值得签出的文件是this one,您会在其中看到有用的标准标记。
注意:您不应使用JSDoc,如TSDoc主页上所述:为什么JSDoc不能成为标准?不幸的是,没有严格指定JSDoc语法,而是根据特定实现的行为来推断。大多数标准JSDoc标记都专注于为纯JavaScript提供类型注释,这与诸如TypeScript之类的强类型语言无关。 TSDoc在解决这些局限性的同时,还解决了一套更为复杂的目标。
答案 3 :(得分:13)
您可以使用常规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
答案 4 :(得分:4)
TypeScript是JavaScript的严格语法超集,因此