TypeScript:
การใช้แอเรย์สมาชิก

วิธีการ:

การสร้างและใช้ associative arrays ใน TypeScript เป็นเรื่องง่าย นี่คือส่วนที่พื้นฐาน:

// การประกาศ associative array
let user: { [key: string]: string } = {};

// การเพิ่มข้อมูล
user["name"] = "Jane Doe";
user["email"] = "[email protected]";

console.log(user);

ผลลัพธ์:

{ name: 'Jane Doe', email: '[email protected]' }

การวนรอบผ่านคู่คีย์-ค่าก็ทำได้ง่ายเช่นกัน:

for (let key in user) {
    console.log(key + ": " + user[key]);
}

ผลลัพธ์:

name: Jane Doe
email: jane@example.com

และถ้าคุณกำลังจัดการกับการผสมผสานของประเภทข้อมูล TypeScript’s type system มีประโยชน์:

let mixedTypes: { [key: string]: string | number } = {};
mixedTypes["name"] = "John Doe";
mixedTypes["age"] = 30;

console.log(mixedTypes);

ผลลัพธ์:

{ name: 'John Doe', age: 30 }

ลงลึก

ใน TypeScript สิ่งที่เราเรียกว่า associative arrays จริงๆ แล้วเป็น objects โดยประวัติศาสตร์ ในภาษาเช่น PHP, associative arrays เป็นประเภทพื้นฐาน แต่ JavaScript (และโดยขยาย TypeScript) ใช้ objects สำหรับวัตถุประสงค์นี้ แนวทางนี้เป็นทั้งจุดแข็งและจำกัด Objects ให้โครงสร้างที่มีความยืดหยุ่นสูงสำหรับการเชื่อมโยงสตริงกับค่า แต่พวกมันไม่ได้ตั้งใจให้ใช้เป็น ‘อาร์เรย์’ ในความหมายแบบดั้งเดิม เช่น คุณไม่สามารถใช้เมทอดอาร์เรย์เช่น push หรือ pop โดยตรงกับ objects นี้

สำหรับกรณีที่คุณต้องการคอลเลกชันที่มีลำดับของคู่คีย์-ค่าพร้อมการดำเนินการแบบอาร์เรย์ TypeScript (และ JavaScript สมัยใหม่) มี Map object ให้:

let userMap = new Map<string, string>();
userMap.set("name", "Jane Doe");
userMap.set("email", "[email protected]");

userMap.forEach((value, key) => {
    console.log(key + ": " + value);
});

ในขณะที่ระบบประเภทของ TypeScript และคุณสมบัติ ES6 เช่น Map ให้ทางเลือกที่มีพลัง การทำความเข้าใจวิธีใช้ objects เป็น associative arrays มีประโยชน์สำหรับสถานการณ์ที่ตัวแปร object มีประสิทธิภาพสูงขึ้นหรือเมื่อทำงานกับโครงสร้างข้อมูล JSON มันเกี่ยวกับการเลือกเครื่องมือที่เหมาะสมสำหรับงาน