মডিউল পাঠ (2/2)
ঘোষণা এবং একত্রীকরণ
টাইপ ডিক্লারেশন ফাইল (.d.ts এক্সটেনশন সহ) টাইপস্ক্রিপ্টে ব্যবহার করা হয় বিদ্যমান জাভাস্ক্রিপ্ট কোডের আকৃতি বর্ণনা করতে কোনো বাস্তব যুক্তি প্রয়োগ না করে। তারা শুধুমাত্র টাইপ সংজ্ঞা, ইন্টারফেস, এবং ফাংশন স্বাক্ষর ধারণ করে।
বিশুদ্ধ জাভাস্ক্রিপ্টে লেখা তৃতীয় পক্ষের লাইব্রেরি ব্যবহার করার সময় এই ফাইলগুলি অপরিহার্য।
ঘোষণা মার্জিং
ডিক্লেয়ারেশন মার্জিং হল এমন একটি আচরণ যেখানে কম্পাইলার একই নামের সাথে ঘোষিত দুটি বা ততোধিক পৃথক ঘোষণাকে একক সংজ্ঞায় একত্রিত করে।
সবচেয়ে সাধারণ ক্ষেত্রে হল ইন্টারফেস মার্জ করা:
interface User {
name: string;
}
interface User {
age: number;
}
// The resulting User interface has both name and age properties!
const student: User = {
name: 'Alice',
age: 23,
};বৈশিষ্ট্য একই নাম শেয়ার করলে, সেগুলি অবশ্যই একই ধরনের হতে হবে, অন্যথায় TypeScript একটি ত্রুটি রিপোর্ট করবে।
গ্লোবাল এবং এক্সটার্নাল মডিউল পরিবর্তন করা
আমরা অন্যান্য মডিউল বা গ্লোবাল স্কোপে সংজ্ঞায়িত ইন্টারফেস প্রসারিত করতে ঘোষণা মার্জিং ব্যবহার করতে পারি।
উদাহরণস্বরূপ, যদি আমরা ব্রাউজারের গ্লোবাল window অবজেক্টে একটি প্রপার্টি যোগ করতে চাই:
declare global {
interface Window {
analyticsToken: string;
}
}declare global ব্যবহার করে, আমরা TypeScript কে বলি যে আমরা বিদ্যমান গ্লোবাল Window ইন্টারফেসে একটি নতুন স্বাক্ষর ইনজেকশন করছি।
নিজে চেষ্টা করে দেখুন
অনুশীলনী 1: মৌলিক ঘোষণা মার্জিং
TypeScript-এ, একই সুযোগে একই নামের ইন্টারফেসগুলি স্বয়ংক্রিয়ভাবে একত্রিত হয়। প্রপার্টি নাম সহ একটি ইন্টারফেস ব্যবহারকারী ঘোষণা করুন: স্ট্রিং, তারপর একটি দ্বিতীয় ব্লকে একই ইন্টারফেস ব্যবহারকারী সম্পত্তি বয়স: সংখ্যা যোগ করে ঘোষণা করুন। অবশেষে, উপযুক্ত মান সহ ব্যবহারকারী টাইপের একটি ধ্রুবক ব্যবহারকারী ঘোষণা করুন।
ইঙ্গিত দেখান
দুইবার ইন্টারফেস ব্যবহারকারী ঘোষণা করুন, সংশ্লিষ্ট বৈশিষ্ট্য সন্নিবেশ করান, এবং তারপর ব্যবহারকারী অবজেক্টে ক্ষেত্রগুলি বরাদ্দ করুন।
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ
অনুশীলনী 2: গ্লোবাল উইন্ডো ইন্টারফেস প্রসারিত করা
কল্পনা করুন যে আপনি Record<string, string> টাইপের কনফিগার নামের একটি কাস্টম প্রপার্টি যোগ করতে গ্লোবাল উইন্ডো ইন্টারফেস প্রসারিত করতে চান। গ্লোবাল উইন্ডো ইন্টারফেসে নতুন সম্পত্তি মার্জ করতে ডিক্লার গ্লোবাল ব্যবহার করে সঠিক ঘোষণাটি লিখুন।
ইঙ্গিত দেখান
ডিক্লেয়ার গ্লোবাল { ইন্টারফেস উইন্ডো { কনফিগারেশন ব্যবহার করুন: Record<string, string>; } }।
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ