【问题标题】:Tools and guide for documenting TypeScript code?用于记录 TypeScript 代码的工具和指南?
【发布时间】:2013-04-22 05:22:36
【问题描述】:

是否有任何工具可以为 TypeScript 源代码生成文档?或者我应该使用像 NaturalDocs 这样通用的东西吗?块 cmets 的推荐样式/用于独立文档卷的样式是什么。

我应该使用:

///<foo>bar</foo> MSVS kind of comments?

/** @javadoc style comments */

或许

/*
  Something like this?
 */

我不敢使用 ///,因为它用于导入,我不想涉足未来可能以类似方式引入的其他功能 - 但你永远不知道...

或者是否可以从 TypeScript 生成文档化的 JavaScript,然后使用 JavaScript 工具链?

【问题讨论】:

    标签: typescript documentation-generation


    【解决方案1】:

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

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

    如果您想尝试一下,只需通过 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 及以下版本吗?
    • 非常好——我刚刚在 TS 1.4.1 上试了一下。非常感谢!
    • 感谢您成为这样做的人。不容易做到,你的工作受到赞赏。 :)
    【解决方案2】:

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


    原答案:

    也许有点晚了,但是在我遇到这个问题之后,我发现仍然没有工具可以做到这一点。所以我分叉了 TS 编译器并创建了代码来完成它。

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

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

    它会生成 .ts.wiki 文件(如果您还使用新的 --wikiRemoveRoot 和 --wikiSourceRoot 参数,其内容适合直接上传到 CodePlex 等 - 请参阅 fork - 我的第一个提交描述)。或者您可以修改代码以生成 HTML(这将相对简单 - 我已经完成了修改编译器/delcrationEmitter 的艰苦工作:))

    希望这对您有所帮助(您或此问题的未来读者)

    埃德

    【讨论】:

    • TS1.5 可用似乎有点过时了。
    • 你能删除这个答案吗?它现在完全无关紧要,完全过时了。这个问题的另一个答案中的 TypeDoc 似乎是现在普遍喜欢的答案。
    【解决方案3】:

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

    /** 
    * Comment goes here
    */
    

    接下来,当您点击您的方法时,它将与文档一起显示。

    【讨论】:

    【解决方案4】:

    Generate XML Doc comments TypeScript 语言的建议问题之一。

    目前 TypeScript 工具支持 JSDoc Announcing TypeScript 0.8.2

    所以,您肯定希望对 cme​​ts 使用 JSDoc 样式。如果您只需要 IntelliSense 的 cmets - 使用 JSDoc 将满足您的要求。如果您需要 cmets,因为您想为您的 API 使用者提供文档 - 您应该将声明文件 (*.d.ts) 与 cmets 一起使用。如果你想在 web 上生成漂亮的文档 - 我想很容易等待 TypeScript 团队实现 XML doc cmets 的生成(或手动编写)。

    【讨论】:

    • 我希望他们实现 jsdoc 生成而不是 ms 特定的 xml 文档
    【解决方案5】:

    我正在编译为 JavaScript 并使用 jsduck (https://github.com/senchalabs/jsduck) 根据 JavaScript 文件生成 api 文档。只要您不告诉 tsc 删除运行良好的 cmets,除了没有默认值的字段(!)。

    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
    

    【讨论】:

    • 但是您总是必须在 .ts 代码和 cmets 中指定您使用的所有内容的类型...
    【解决方案6】:

    我编写了一个工具,用于从声明 (.d.ts) 文件 here 生成 HTML 文档。它对 JSDoc 样式的 cmets 有基本的支持。

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

    typescript-docs *.d.ts

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

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

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

    【讨论】:

    猜你喜欢
    • 2013-07-15
    • 2013-07-02
    • 2017-01-20
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 2015-07-25
    • 1970-01-01
    • 2010-09-08
    相关资源
    最近更新 更多