এই দুটি অপারেটর আপনাকে বিদ্যমান টাইপ এবং মান থেকে টাইপ প্রাপ্ত করতে দেয় — যা টাইপ-লেভেল প্রোগ্রামিংয়ের ভিত্তি।
keyof — একটি অবজেক্ট টাইপের কীগুলির ইউনিয়ন
interface User { id: number; name: string; }
= keyof ;
const config = { host: "localhost", port: 3000 };
type Config = typeof config; // { host: string; port: number }
typeof (একটি টাইপ পজিশনে) একটি রানটাইম মানের অনুমানকৃত টাইপ ক্যাপচার করে, তাই আপনাকে টাইপটি আলাদাভাবে লিখতে হবে না।
function getProp<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}
const user = { id: 1, name: "Ann" };
getProp(user, "name"); // returns string
getProp(user, "age"); // ❌ Error: "age" is not a key of user
এখানে K extends keyof T key কে বাস্তব কীগুলিতে সীমাবদ্ধ করে, এবং T[K] (একটি ইন্ডেক্সড অ্যাক্সেস টাইপ) সেই কীর জন্য সঠিক মান টাইপ ফেরত দেয়। টাইপোগুলি কম্পাইল ত্রুটি হয়ে ওঠে।
const Roles = { Admin: "admin", User: "user" } as const;
type Role = typeof Roles[keyof typeof Roles]; // "admin" | "user"
keyof এবং typeof মূল্য বিশ্ব এবং টাইপ বিশ্বকে সংযুক্ত করে।
তারা টাইপ-নিরাপদ প্রপার্টি অ্যাক্সেস, কনফিগ/ধ্রুবক থেকে টাইপ প্রাপ্ত করা (একক সত্যের উৎস), এবং mapped এবং conditional টাইপের জন্য বিল্ডিং ব্লক।
তারা হল কীভাবে আপনি সমান্তরাল টাইপ সংজ্ঞা হাতে রক্ষণাবেক্ষণ করা এড়াবেন।
বিস্তারিত উত্তরসহ IT ইন্টারভিউ প্রশ্নের একটি লাইব্রেরি — জুনিয়র থেকে সিনিয়র পর্যন্ত।
দান করুন