У меня есть определение класса 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()
исключение не выбрасывалось. Я что-то пропустил?