【发布时间】:2017-12-06 10:52:06
【问题描述】:
我对 TypeScript 很陌生,有一点我不太明白。
想象以下类:
export class PropertyInConstructor {
constructor(public foo: boolean) {
}
}
export class PropertyWithGetSet {
private _foo: boolean = false;
get foo(): boolean {
return this._foo;
}
set foo(theFoo: boolean) {
this._foo = theFoo;
}
}
据我了解,这两种方法都为我提供了可以使用new PropertyInConstructor().foo 或new PropertyWithGetSet().foo 访问的属性。
我现在想获取此类类的现有属性(无实例!)并尝试一下:
console.log(Object.getOwnPropertyNames(PropertyInConstructor.prototype));
console.log(Object.getOwnPropertyNames(PropertyWithGetSet.prototype));
[“构造函数”]
["构造函数", "foo"]
为什么构造函数内部指定属性的调用没有添加“foo”属性?
是否缺少某些东西或以其他方式获取这些属性?
【问题讨论】:
-
据我所知,第一个示例不会创建 getter/setter 对。第二个示例实际上确实在原型上定义属性如果将示例复制到typescriptlang.org/play/index.html,您将看到这一点
标签: typescript reflection