我有一個TypeScript類的定義,像這樣開始;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];
}
看起來像一個類型數組Thing沒有正確地轉換到相應的JavaScript數組類型。這是從生成的JavaScript代碼段:
function Person(name) {
this._name = name;
this._possessions = new Entities.Thing[100]();
}
執行包含Person對象代碼,扔試圖初始化_possession字段時一個例外:
Error is "0x800a138f - Microsoft JScript runtime error: Unable to get value of the property '100': object is null or undefined".
如果更改_possession的類型any[]
並用new Array()
初始化_possession並不拋出異常。我錯過了什麼?
它不固定長度,而是應該預先分配數組 – Sebastian
爲什麼你不能'private _possessions:Thing []:[]; '在班級定義中? – SuperUberDuper