Tôi có một định nghĩa lớp TypeScript bắt đầu như thế này;
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];
}
Có vẻ như một mảng kiểu Thing không được dịch chính xác sang kiểu mảng Javascript tương ứng. Đây là một đoạn mã từ JavaScript đã tạo:
function Person(name) {
this._name = name;
this._possessions = new Entities.Thing[100]();
}
Đang thực thi mã có chứa đối tượng Person, hãy ném một ngoại lệ khi cố gắng khởi tạo trường _possession:
Lỗi là "0x800a138f - Lỗi thời gian chạy Microsoft JScript: Không thể nhận giá trị của thuộc tính '100': đối tượng là null hoặc không xác định".
Nếu tôi thay đổi kiểu _possession thành any[]
và khởi tạo _possession với new Array()
ngoại lệ sẽ không được ném ra. Tôi đã bỏ lỡ điều gì đó?