typescript - 在 Typescript 中获取所有 Private 成员列表的方法?
问题描述
就像标题所说的那样,我希望能够获得 Typescript 类/实例的私有成员的列表。
我在测试期间尝试过这个,但我担心我会得到所有成员并且无法判断成员在运行时是否是私有的。此外,我不确定如何对静态成员做同样的事情。
type Constructor<T> = new () => T;
export default function <T> (classX: Constructor<T>) {
var c = new classX()
var made = Object.getOwnPropertyNames(c);
for (var i of made) { console.log(i) }
}
解决方案
也许只是在您的方法前面加上 private_ 并获取私有成员,因为在运行时所有这些都只是对象的属性,在 js 中没有反射。这可以在 typescript 中使用reflect-metadata来实现,但是仍然需要指定私有方法的数组。或者只创建____privateMembers____ 静态属性来跟踪此元数据(通常这是在动态类型语言(如 js 和 python)中所做的) )
推荐阅读
- php - 无法使用 php 文件上传器上传 .php 文件
- javascript - 类定义如何工作?
- python - 如何在 Python + Pandas + sqlAlchemy + MSSQL/T-SQL 中加速数据争吵?
- asp.net - 如何使用 Asp.Net Core 1.0.1 二进制文件
- r - 使用 R 复制 Excel 工作表格式
- java - 如何为简单的配置类编写测试?
- powerbi - Power BI - 创建度量作为可视级别筛选器
- media - Lync 是否支持 AES-256 进行媒体加密?
- javascript - JS导出html文件代码编辑?
- storage - AIX 中 powermt 显示命令中的多个路径