Ho una definizione di classe TypeScript che inizia così;Uso dell'array typed TypeScript
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 un array di tipo Cosa non viene tradotto correttamente nel corrispondente tipo di array Javascript. Si tratta di un frammento dal JavaScript generato:
function Person(name) {
this._name = name;
this._possessions = new Entities.Thing[100]();
}
esecuzione di codice che contiene un oggetto Person, un'eccezione quando si tenta di inizializzare il campo _possession:
Error is "0x800a138f - Microsoft JScript runtime error: Unable to get value of the property '100': object is null or undefined".
Se cambio il tipo di _possession a any[]
e inizializza _possession con l'eccezione new Array()
non viene generata. Ho dimenticato qualcosa?
non aggiusta la lunghezza, ma dovrebbe preallocare l'array – Sebastian
perché non puoi fare 'private _possessions: Thing []: []; 'nella definizione della classe? – SuperUberDuper