记录TypeScript代码的工具和指南?

61

有没有针对TypeScript源代码生成文档的工具?还是应该使用像NaturalDocs这样的通用工具?块注释/为独立文档准备的注释,推荐使用哪种风格?

我应该使用什么:

///<foo>bar</foo> MSVS kind of comments?
或者
/** @javadoc style comments */

或者也许

/*
  Something like this?
 */

我害怕使用///,因为它被用于导入,而我不想踩在可能以类似方式引入的其他未来功能上——但你永远不知道...

还是有可能从TypeScript生成文档化的JavaScript,然后使用JavaScript工具链吗?

6个回答

96

我刚刚发布了一个名为TypeDoc的工具,它可以将TypeScript *.ts文件生成html api文档页面。

文档生成器运行TypeScript编译器并从生成的编译器符号中提取类型信息。因此,您不必在注释中包含任何其他元数据。

如果您想尝试,请通过npm安装并运行该工具:

npm install typedoc --global
typedoc --out path/to/documentation/ path/to/typescript/project/

如果您想知道使用TypeDoc创建的文档是什么样子,请前往该项目的GitHub页面:

http://typedoc.org/ | https://github.com/TypeStrong/typedoc


干得好,你打算支持 TypeScript 版本 1.3 及以上吗? - Paolo
非常好 - 我刚刚用TS 1.4.1试了一下。非常感谢! - x0n
感谢您成为完成这项工作的人。这并不容易,我们非常感激您的工作。 :) - Ezekiel Victor

23

该回答来自2013年。现在存在其他(维护的)解决方案-其中一些在下面的答案中提到。


原始回答:

也许有点晚了,但我在遇到这个问题后发现还没有工具可以做到这一点。所以我fork了TS编译器并创建了代码来实现它。

在v0.9.0.1处fork TypeScript编译器项目,然后添加了“--documentation”选项,该选项将从您放入代码中的任何JSDoc生成wiki文档(只需纯输出方法/属性等即可不需要)。)

https://typescript.codeplex.com/SourceControl/network/forks/EdwardNutting/TypeScriptDocumentationGeneration

它会生成.ts.wiki文件,文件内容适合直接上传到CodePlex等网站(如果您还使用新的-- wikiRemoveRoot和-- wikiSourceRoot参数,则看下面的fork-我的第一个提交说明),或者您可以调整代码以生成HTML(这相对简单-我已经完成了编译器/ delcrationEmitter的繁重工作 :))

希望这能帮助到您(或这个问题的未来读者)

Ed


4
有了TS1.5,它似乎有点过时了。 - Gábor Imre
4
能否请您删除这个回答?它现在完全与问题无关,已经过时。另一个回答中的 TypeDoc 现在似乎是大家都喜欢的答案。 - Chris Morgan

13

你可以在函数上方使用这种注释。

/** 
* Comment goes here
*/

接下来,当您使用该方法时,它将显示相关文档。


您可以在 TypeScript 的 GitHub 页面 上看到示例。看起来这个 jsDoc 风格是可行的,包括参数。 - user4275029

7

生成XML文档注释是TypeScript语言提议的其中一个问题。

目前,TypeScript工具支持JSDoc Announcing TypeScript 0.8.2

因此,您肯定希望使用JSDoc样式的注释。如果您只需要为智能感知添加注释,则使用JSDoc即可满足您的要求。如果您需要注释,因为您想为API消费者提供文档 - 您应该使用带有注释的声明文件(*.d.ts)。如果您想在Web上生成漂亮的文档 - 我想等待TypeScript团队实现生成XML文档注释(或手动编写)将很容易。


2
我希望他们实现jsdoc生成,而不是使用微软特定的xml文档。 - basarat

4
我正在将代码编译为 JavaScript 并使用 jsduck (https://github.com/senchalabs/jsduck) 来生成基于 JavaScript 文件的 API 文档。只要您不告诉 tsc 去掉注释,它就可以完美地工作,但是对于没有默认值的字段有例外。
module example {

/**
 * My class description
 * @class example.MyClass
 */
export class MyClass {
    /**
     * Description of my property
     * @property {String} myProperty
     */
    myProperty: string = null;

    /**
     * This property will be removed in compiled JavaScript, that's why
     * this documentation will not be visible in jsduck.
     */
    willNotWork: string;

    /**
     * Description of my method
     * @method myFunction
     * @param {String} myParam
     */
    myFunction(myParam: string): void {
    }
}

} // end of module

1
但是你必须始终在.ts代码和注释中指定使用的所有内容的类型... - tforgione

0

我编写了一个工具,可以从声明(.d.ts)文件这里生成HTML文档。它支持JSDoc风格的基本注释。

使用-d -c选项编译您的TypeScript源文件以生成声明文件并保留注释。然后安装后,您可以运行

typescript-docs *.d.ts

在标准输出上生成HTML文档。

要将输出保存到文件中,请使用

typescript-docs *.d.ts --output=path/to/output.html


@RobertLevy 我在这里添加了一个基本示例 https://github.com/paf31/typescript-docs/tree/master/examples - Phil Freeman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接