সম্পাদনা (জুন 5 2019): যদিও "টাইপসক্রিপ্ট Map
স্থানীয়ভাবে সমর্থন করে" ধারণাটি এখনও সত্য, যেহেতু সংস্করণ ২.১ টাইপসক্রিপ্ট কিছুটিকে সমর্থন করে Record
।
type MyMapLikeType = Record<string, IPerson>;
const peopleA: MyMapLikeType = {
"a": { name: "joe" },
"b": { name: "bart" },
};
দুর্ভাগ্যক্রমে প্রথম জেনেরিক প্যারামিটার (কী টাইপ) এখনও পুরোপুরি সম্মানিত হয় না: এমনকি কোনও string
প্রকারের সাথে peopleA[0]
(ক number
) এর মতো কিছু এখনও বৈধ।
সম্পাদনা (এপ্রিল 25 2016): নীচের উত্তরগুলি পুরানো এবং সেরা উত্তর হিসাবে বিবেচনা করা উচিত নয়। টাইপস্ক্রিপ্ট মানচিত্রকে এখন "নেটিভালি" সমর্থন করে, সুতরাং আউটপুট ES6 এ কেবল ES6 মানচিত্র ব্যবহার করার অনুমতি দেয়। ইএস 5 এর জন্য এটি পলিফিল সরবরাহ করে না; এগুলি আপনাকে নিজেরাই এম্বেড করা দরকার।
আরও তথ্যের জন্য আরও আধুনিক উত্তরের জন্য নীচে মোহাম্মদ হেগাজির উত্তরটি দেখুন বা একটি সংক্ষিপ্ত সংস্করণের জন্য এই রেডডিট মন্তব্যটিও দেখুন ।
1.5.0 বিটা হিসাবে, টাইপস্ক্রিপ্ট এখনও মানচিত্র সমর্থন করে না । এটি এখনও রোডম্যাপের অংশ নয় , হয় না।
বর্তমান সেরা সমাধানটি টাইপযুক্ত কী এবং মান (কখনও কখনও হ্যাশম্যাপ হিসাবে পরিচিত) সহ একটি অবজেক্ট। প্রকারের কী এবং প্রকারের string
মান সহ একটি সামগ্রীর জন্য number
:
var arr : { [key:string]:number; } = {};
কিছু সতর্কতা, যদিও:
- কীগুলি কেবল টাইপ
string
বা হতে পারেnumber
- মূল কী হিসাবে আপনি কী ব্যবহার করেন তা আসলে কিছু যায় আসে না, যেহেতু সংখ্যা / স্ট্রিংগুলি এখনও বিনিময়যোগ্যভাবে গ্রহণ করা হয় (কেবলমাত্র মান প্রয়োগ করা হয়)।
উপরের উদাহরণ সহ:
// OK:
arr["name"] = 1; // String key is fine
arr[0] = 0; // Number key is fine too
// Not OK:
arr[{ a: "a" }] = 2; // Invalid key
arr[3] = "name"; // Invalid value