获取Typescript中所有私有成员列表的方法?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取Typescript中所有私有成员列表的方法?相关的知识,希望对你有一定的参考价值。
就像标题所说,我希望能够获得一个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)
以上是关于获取Typescript中所有私有成员列表的方法?的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript 和 TypeScript 的封装性 —— 私有成员