私はかなりTypeScriptを新しくしています。これら二つのアプローチは、私がnew PropertyInConstructor().foo
またはnew PropertyWithGetSet().foo
を使用してアクセスできるプロパティを提供し、両方の私の理解からTypeScript - getOwnPropertyNames() - コンストラクタのプロパティ対Getter/Setter
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;
}
}
:
は、以下のクラスを想像してみてください。
I今(インスタンスなし!)、このようなクラスの既存のプロパティを取得したいし、それを試してみる:
console.log(Object.getOwnPropertyNames(PropertyInConstructor.prototype));
console.log(Object.getOwnPropertyNames(PropertyWithGetSet.prototype));
を[ "コンストラクタ"]
[ "コンストラクタ"、 "foo"]
コンストラクタ内でプロパティが指定されている呼び出しで "foo"プロパティが追加されないのはなぜですか?
これらのプロパティを取得するには、何か不足か他の方法がありますか?
最初の例では、ゲッター/セッターのペアは作成されません。 2番目の例は実際にプロトタイプのdefinePropertyを実行します 例をhttp://www.typescriptlang.org/play/index.htmlにコピーするとこれが表示されます –