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

标签 angular typescript reflection comments documentation

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

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

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

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

有人知道如何从类引用或表示类的字符串中提取注释吗?

最佳答案

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

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

关于angular - 在运行时获取类/函数注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54531585/

相关文章:

c# - 如何通过反射代码(c#)设置可空类型?

html - primeng,p 表列 "reorder"不工作

javascript - 如何使用 Jasmine 在单元测试中模拟 super.ngOnInit() ?如何在基类/父类方法上创建 spy 以仅覆盖派生/子类代码?

node.js - 如何在 ubuntu 服务器上启动我的 Angular cli 项目?

reactjs - 类型 'google' 上不存在属性 'Window'

objective-c - 如何在 Objective-C 中使用运行时反射解析属性 getter/setter 方法选择器? (或相反)

javascript - 当指定为对象属性时,IIFE 如何影响其中的此关键字

javascript - Angular - 创建 Web 组件并在项目中使用

Angular 5 检查变量的值和 *ngIf 语句

java - 在运行时从java中的另一个进程获取初始化的静态对象