获取Typescript中所有私有成员列表的方法?

问题描述 投票:0回答:1

就像标题所说,我希望能够获得一个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) }
}
typescript types private private-members
1个回答
0
投票

也许只是用private_前置你的方法并获取私有成员,因为在运行时所有只是对象的属性,js中没有反射。这可以通过在typescript中使用reflect-metadata来实现,但是,你需要指定私有方法的数组。或者只需创建____privateMembers____静态属性来跟踪这些元数据(通常这是在动态类型语言中完成的,如js和python)

© www.soinside.com 2019 - 2024. All rights reserved.