Ich bin ziemlich neu in TypeScript und es gibt einen Punkt, den ich nicht ganz verstehe.TypeScript - getOwnPropertyNames() - Konstruktor Eigenschaften gegen Getter/Setter
die folgenden Klassen Stellen Sie sich vor:
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;
}
}
Von meinem Verständnis dieser beiden Ansätze mir beide bieten eine Eigenschaft, die ich new PropertyInConstructor().foo
oder new PropertyWithGetSet().foo
zugreifen kann.
Ich möchte jetzt die vorhandenen Eigenschaften einer solchen Klasse erhalten und es auszuprobieren (ohne Beispiel!):
console.log(Object.getOwnPropertyNames(PropertyInConstructor.prototype));
console.log(Object.getOwnPropertyNames(PropertyWithGetSet.prototype));
[ "Konstruktor"]
[ "Konstruktor", "foo"]
Warum enthält der Aufruf, bei dem die Eigenschaften im Konstruktor angegeben werden, nicht die Eigenschaft "foo"?
Gibt es etwas fehlt oder eine andere Möglichkeit, diese Eigenschaften zu bekommen?
Was ich weiß, das erste Beispiel erstellt kein Getter/Setter-Paar. Das zweite Beispiel definiert eigentlich Property für einen Prototyp Sie sehen dies, wenn Sie Ihre Beispiele nach http://www.typescriptlang.org/play/index.html kopieren –