جاوااسکریپت - هشمپ با لیست بهعنوان مقدار در تایپاسکریپت


من در حال یادگیری تایپاسکریپت هستم و سعی دارم مجموعهای مشابه موارد زیر در جاوا ایجاد کنم

HashMap<String, List<String>> hashMap = new HashMap<String,List<String>>();

من نمیتوانم هیچ مثالی پیدا کنم. آیا امکان انجام این کار در تایپاسکریپت وجود دارد؟ آیا چیزی شبیه به این وجود دارد؟

پاسخ شماره ۱

HashMap تنها شامل کلیدهای یکتا است. بنابراین میتوانید از یک شیء ساده استفاده کرده و آرایه را به کلید اختصاص دهید:

let hash = {};
hash["bobtail"] = [];
hash["bobtail"].push({ age: 7, name: "miffy" });
console.log(hash)

یا سعی کنید از Record<Keys, Type> استفاده کنید. همانطور که مستندات میگوید:

یک نوع شیء میسازد که کلیدهای ویژگی آن Keys و مقادیر ویژگی آن Type هستند. این ابزار میتواند برای نگاشت ویژگیهای یک نوع به نوع دیگر استفاده شود.

interface CatInfo {
  age: number;
  name: string;
}
 
type CatBreed = "bobtail" | "birman" | "maine";
 
const cats: Record<CatBreed, CatInfo[]> = {
  bobtail: [{ age: 7, name: "miffy" }],
  birman: [{ age: 8, name: "moorzik" }],
  maine: [{ age: 17, name: "mordred" }],
};

بهروزرسانی:

این روش برای اضافه کردن یک مورد به Record<Keys, Type> است:

cats["bobtail"].push({ age: 11, name: "miffy" });

این راهی برای گرفتن اقلام از Record<Keys, Type> است:

const bobtails: CatInfo[] = cats["bobtail"];