【发布时间】:2019-04-14 13:23:31
【问题描述】:
正如标题所说,我希望能够获得一个 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 的私有版本,在运行时没有私有成员是私有的.他们都是公开的。 TypeScript 的
private纯粹是关于类型系统,而不是运行时。 (不回答,因为这没有回答如何获取私有成员列表以进行测试的问题,如果可以的话。) -
(相比之下,JavaScript 自己的私有,class fields proposal 的一部分,即将进入第 4 阶段,是真正私有的。)
标签: typescript types private private-members