我有一个这样开头的 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' 的值:对象为空或未定义”。
如果我将 _possession 的类型更改为any[]
并初始化 _possession,new Array()
则不会引发异常。我错过了什么?