মানচিত্রের মতো অবজেক্টটি ব্যবহার করার পাশাপাশি , কিছু সময়ের জন্য একটি আসল Map
অবজেক্ট রয়েছে যা ES6 তে সংকলন করার সময়, বা ES6 টাইপ-সংজ্ঞা সহ একটি পলিফিল ব্যবহার করার সময় টাইপস্ক্রিপ্টে পাওয়া যায় :
let people = new Map<string, Person>();
এটি Object
সামান্য ভিন্ন সিনট্যাক্স সহ আরও অনেকের মতো একই কার্যকারিতা সমর্থন করে :
// Adding an item (a key-value pair):
people.set("John", { firstName: "John", lastName: "Doe" });
// Checking for the presence of a key:
people.has("John"); // true
// Retrieving a value by a key:
people.get("John").lastName; // "Doe"
// Deleting an item by a key:
people.delete("John");
মানচিত্রের মতো বস্তু ব্যবহারের ক্ষেত্রে এটির একা একাধিক সুবিধা রয়েছে যেমন:
- নন-স্ট্রিং ভিত্তিক কীগুলির জন্য সমর্থন, উদাহরণস্বরূপ সংখ্যা বা বস্তু, যার কোনওটিই সমর্থন করে না
Object
(না,Object
সমর্থন করে না সংখ্যাগুলি সমর্থন করে না, এটি তাদের স্ট্রিংগুলিতে রূপান্তর করে)
- ব্যবহার না করার সময় ত্রুটির জন্য কম জায়গা
--noImplicitAny
, যেমন Map
সর্বদা একটি থাকে কী টাইপ এবং মান ধরণের থাকে, যেখানে কোনও বস্তু শক্তিশালী হতে পারে সূচক-স্বাক্ষর
- আইটেম যুক্ত করার / মুছে ফেলার কার্যকারিতা (কী-মানযুক্ত জোড়া) কোনও কাজের বৈশিষ্ট্য তৈরির বিপরীতে কাজের জন্য অনুকূলিত করা হয়
Object
অতিরিক্তভাবে, কোনও Map
কাজ সাধারণ কাজের জন্য আরও শক্তিশালী এবং মার্জিত এপিআই সরবরাহ করে, যার বেশিরভাগই সহজ Object
সহায়তার মাধ্যমে একসাথে সহায়তা কার্যকারিতা হ্যাক করা ছাড়া পাওয়া যায় না (যদিও এর মধ্যে কিছুগুলির জন্য ES5 টার্গেটের জন্য বা নীচে সম্পূর্ণ ES6 পুনরাবৃত্তকারী / পুনরাবৃত্ত পলিফিল প্রয়োজন):
// Iterate over Map entries:
people.forEach((person, key) => ...);
// Clear the Map:
people.clear();
// Get Map size:
people.size;
// Extract keys into array (in insertion order):
let keys = Array.from(people.keys());
// Extract values into array (in insertion order):
let values = Array.from(people.values());