ฉันมีนิยามคลาส 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]();
}
การดำเนินการรหัสที่มีวัตถุบุคคลจะมีข้อยกเว้นเมื่อพยายามเริ่มต้นฟิลด์ _possession:
ข้อผิดพลาดคือ "0x800a138f - ข้อผิดพลาดรันไทม์ของ Microsoft JScript: ไม่สามารถรับค่าคุณสมบัติ '100': object is null or undefined"
ถ้าฉันเปลี่ยนประเภทของ _possession เป็นany[] และเริ่มต้น _possession ด้วยnew Array()ข้อยกเว้นจะไม่ถูกโยนทิ้ง ฉันพลาดอะไรไปหรือเปล่า?