Ich habe eine TypeScript-Klassendefinition, die so beginnt.
module Entities {
export class Person {
private _name: string;
private _possessions: Thing[];
private _mostPrecious: Thing;
constructor (name: string) {
this._name = name;
this._possessions = new Thing[100];
}
Es sieht so aus, als würde ein Array vom Typ Thing nicht korrekt in den entsprechenden Javascript-Array-Typ übersetzt. Dies ist ein Ausschnitt aus dem generierten JavaScript:
function Person(name) {
this._name = name;
this._possessions = new Entities.Thing[100]();
}
Wenn Sie Code ausführen, der ein Personenobjekt enthält, lösen Sie eine Ausnahme aus, wenn Sie versuchen, das Feld _possession zu initialisieren:
Fehler ist "0x800a138f - Microsoft JScript-Laufzeitfehler: Wert der Eigenschaft '100' kann nicht abgerufen werden: Objekt ist null oder undefiniert".
Wenn ich den Typ von _possession ändere any[] und _possession mit new Array()Ausnahme initialisiere, wird dies nicht ausgelöst. Habe ich etwas verpasst?