У меня есть определение класса 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:
Ошибка: «0x800a138f - ошибка времени выполнения Microsoft JScript: невозможно получить значение свойства« 100 »: объект имеет значение null или undefined».
Если я изменю тип _possession на any[] и инициализирую _possession, new Array()исключение не будет выбрано . Я что-то пропустил?