جاوااسکریپت - هشمپ با لیست بهعنوان مقدار در تایپاسکریپت
من در حال یادگیری تایپاسکریپت هستم و سعی دارم مجموعهای مشابه موارد زیر در جاوا ایجاد کنم
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"];
