Eu tenho uma definição de classe TypeScript que começa assim;
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];
}
Parece que um array do tipo Thing não é traduzido corretamente para o tipo de array Javascript correspondente. Este é um snippet do JavaScript gerado:
function Person(name) {
this._name = name;
this._possessions = new Entities.Thing[100]();
}
Ao executar o código que contém um objeto Person, lance uma exceção ao tentar inicializar o campo _possession:
O erro é "0x800a138f - erro de tempo de execução do Microsoft JScript: não é possível obter o valor da propriedade '100': o objeto é nulo ou indefinido".
Se eu alterar o tipo de _possession para any[]
e inicializar _possession com new Array()
exceção, não será lançada. Perdi alguma coisa?