Tôi có định nghĩa lớp TypeScript bắt đầu như thế này;Cách sử dụng mảng đánh máy 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];
}
Dường như một loại kiểu Thing không được dịch chính xác sang loại mảng Javascript tương ứng. Đây là một đoạn trích từ JavaScript tạo:
function Person(name) {
this._name = name;
this._possessions = new Entities.Thing[100]();
}
thực thi mã chứa một đối tượng Person, ném một ngoại lệ khi cố gắng khởi tạo lĩnh vực _possession:
Error is "0x800a138f - Microsoft JScript runtime error: Unable to get value of the property '100': object is null or undefined".
Nếu tôi thay đổi loại _possession để any[]
và khởi tạo _possession với new Array()
ngoại lệ không được ném. Tôi đã bỏ lỡ một cái gì đó?
nó không sửa chữa độ dài, nhưng thay vào đó nên preallocate mảng – Sebastian
tại sao bạn không thể làm 'private _possessions: Thing []: []; 'trong định nghĩa lớp? – SuperUberDuper