在运行时获取类/函数注释

时间:2019-02-05 09:48:43

标签: angular typescript reflection comments documentation

我正在寻找一种在运行时在Angular应用中从类和函数中获取注释的方法,目的是生成自定义文档。使用外部工具生成文档不符合我的要求。我真的需要自己生成文档。

我已经进行了一些试验,到目前为止,我有两种可能的情况:

  1. 将相关类作为字符串加载,并通过字符串操作提取注释(我认为这不是最好的情况)。

  2. 导入类并使用ts提取注释。此时,当我尝试导入ts:import * as ts from 'typescript'时,在Angular应用程序中遇到一些错误。显然,这会导致循环引用。这段代码显示了如何从类中提取注释,但是似乎无法在运行时在Angular应用中使用它:comment factory from TypeDoc sources

有人想到从类引用或代表类的字符串中提取注释的方法吗?

1 个答案:

答案 0 :(得分:2)

您要的是TypeScript中的元编程实现,目前尚不可用。您需要了解,浏览器不会直接运行TS代码。而是将代码编译为JavaScript,然后运行时才会发生。注释只供程序员查看-无需将其转移到生成的JS转码代码中。

Typedoc仅在编译时起作用,因此它可以访问所有TS源文件。如果您想创建自己的文档解析工具,那很好,但是您将需要学习很多有关编程语言解析如何工作的知识。搜索“龙书”,“ Let's build a simple interpreter”和其他来源。