Ho una definizione di classe TypeScript che inizia in questo modo;
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];
}
Sembra che un array di tipo Thing non venga tradotto correttamente nel tipo di array Javascript corrispondente. Questo è uno snippet del JavaScript generato:
function Person(name) {
this._name = name;
this._possessions = new Entities.Thing[100]();
}
L'esecuzione del codice contenente un oggetto Person, genera un'eccezione quando si tenta di inizializzare il campo _possession:
L'errore è "0x800a138f - Errore di runtime Microsoft JScript: impossibile ottenere il valore della proprietà" 100 ": l'oggetto è nullo o non definito".
Se cambio il tipo di _possession in any[] e inizializzo _possession con new Array()eccezione, non viene lanciato. Ho dimenticato qualcosa?