সুচিপত্র[লুকান][দেখান]
- 1. TypeScript আসলে কি এবং এটি জাভাস্ক্রিপ্ট থেকে কিভাবে আলাদা?
- 2. TypeScript এর কিছু উল্লেখযোগ্য বৈশিষ্ট্য কি কি?
- 3. TypeScript ব্যবহার করার কিছু সুবিধা কি কি?
- 4. TypeScript ব্যবহার করার কিছু অসুবিধা কি কি?
- 5. TypeScript এর উপাদান ঠিক কি?
- 6. আপনি টাইপস্ক্রিপ্টে ইন্টারফেস ব্যাখ্যা করতে পারেন?
- 7. TypeScript এ ভেরিয়েবল কি এবং কিভাবে বিভিন্ন উপায়ে ঘোষণা করা হয়?
- 8. কিভাবে একটি ইন্টারফেসের একটি উপসেট একটি নতুন টাইপ তৈরি করতে ব্যবহার করা যেতে পারে?
- 9. 'যেকোনো' প্রকার বলতে আপনি কী বোঝেন এবং কখন সেগুলি ব্যবহার করব?
- 10. TypeScript কিভাবে ঐচ্ছিক স্ট্যাটিকালি টাইপ করা সিনট্যাক্স সহ একটি ভাষা?
- 11. TypeScript-এ, মডিউল বলতে কী বোঝায়?
- 12. TypeScript এ "enums" কিভাবে কাজ করে?
- 13. একটি বহিরাগত মডিউল থেকে একটি অভ্যন্তরীণ মডিউলকে কী পার্থক্য করে?
- 14. TypeScript এর বেনামী ফাংশন বলতে কী বোঝায়?
- 15. টাইপস্ক্রিপ্টে, একটি নামস্থান কী এবং আপনি কীভাবে একটি ঘোষণা করবেন?
- 16. টাইপস্ক্রিপ্ট কোন অ্যাক্সেস মডিফায়ার সমর্থন করে?
- 17. টাইপস্ক্রিপ্ট কি ফাংশন ওভারলোডিংয়ের অনুমতি দেয়?
- 18. কিভাবে টাইপস্ক্রিপ্ট ফাংশনে ঐচ্ছিক আর্গুমেন্টের অনুমতি দেয়?
- 19. কিভাবে var, let, এবং const একে অপরের থেকে পরিবর্তিত হয়?
- 20. টাইপস্ক্রিপ্টে, ডেকোরেটর বর্ণনা কর?
- 21. TypeScript-এ Mixins বলতে কী বোঝায়?
- 22. টাইপস্ক্রিপ্টে টাইপ উপনামগুলি ঠিক কী?
- 23. "স্কোপ পরিবর্তনশীল" শব্দটির অর্থ কী?
- 24. noImplicitAny ঠিক কিসের জন্য ব্যবহৃত হয়?
- 25. কীভাবে মিলন এবং ছেদগুলির ধরন একে অপরের থেকে আলাদা?
- 26. আপনি কিভাবে একটি টাইপস্ক্রিপ্ট ঘোষণা কীওয়ার্ড সংজ্ঞায়িত করবেন?
- 27. TypeScript-এ, জেনেরিক কি?
- 28. TypeScript-এ JSX বলতে কী বোঝায়?
- 29. টাইপস্ক্রিপ্ট অ্যাম্বিয়েন্ট কী এবং কখন সেগুলি ব্যবহার করা উচিত?
- 30. টাইপস্ক্রিপ্টে বিমূর্ত শ্রেণী বলতে কী বোঝ?
- 31. টাইপস্ক্রিপ্ট ম্যাপ ফাইল আসলে কি?
- 32. TypeScript-এ, টাইপ দাবী কি?
- উপসংহার
মাইক্রোসফ্ট বিকাশ করেছে এবং টাইপস্ক্রিপ্ট প্রোগ্রামিং ভাষা সমর্থন করে চলেছে। একটি বিকল্প হিসাবে স্ট্যাটিক টাইপিং যোগ করার সাথে, এটি জাভাস্ক্রিপ্টের একটি সিনট্যাক্টিক্যাল সুপারসেট।
বড় আকারের অ্যাপ্লিকেশন ডেভেলপমেন্ট ল্যাঙ্গুয়েজ টাইপস্ক্রিপ্ট জাভাস্ক্রিপ্ট কম্পাইল করে। যেহেতু টাইপস্ক্রিপ্ট জাভাস্ক্রিপ্টের একটি সুপারসেট, জাভাস্ক্রিপ্টে লেখা প্রোগ্রামগুলিও টাইপস্ক্রিপ্টে বৈধ।
এখানে সবচেয়ে সাধারণ TypeScript বিকাশকারীর সাক্ষাত্কারের প্রশ্ন এবং প্রতিক্রিয়াগুলির একটি বিস্তৃত তালিকা রয়েছে যদি আপনি একটিতে অংশগ্রহণ করেন।
1. TypeScript আসলে কি এবং এটি জাভাস্ক্রিপ্ট থেকে কিভাবে আলাদা?
জাভাস্ক্রিপ্টের একটি সুপারসেট, টাইপস্ক্রিপ্ট স্ট্যান্ডার্ড জাভাস্ক্রিপ্টে কম্পাইল করে। ধারণাগত দৃষ্টিকোণ থেকে, টাইপস্ক্রিপ্ট এবং জাভাস্ক্রিপ্ট SASS এবং CSS এর মতো।
অন্য কথায়, TypeScript হল ES6 JavaScript যার আরও কিছু ক্ষমতা রয়েছে। জাভাস্ক্রিপ্ট হল একটি স্ক্রিপ্টিং ল্যাঙ্গুয়েজ যা পাইথনের অনুরূপ, যেখানে টাইপস্ক্রিপ্ট হল একটি অবজেক্ট-ওরিয়েন্টেড, স্ট্যাটিকালি টাইপ করা ভাষা যা জাভা এবং সি# এর সাথে তুলনীয়।
ক্লাস এবং ইন্টারফেসগুলি টাইপস্ক্রিপ্টের অবজেক্ট-ওরিয়েন্টেড ডিজাইনের সমস্ত অংশ, এবং টাইপ ইনফারেন্স হল এর স্ট্যাটিক টাইপিংয়ের জন্য উপলব্ধ অনেক টুলগুলির মধ্যে একটি।
জাভাস্ক্রিপ্ট একটি .js এক্সটেনশন সহ একটি ফাইলে লেখা হয়, যেখানে টাইপস্ক্রিপ্ট একটি .ts এক্সটেনশন সহ একটি ফাইলে লেখা হয়।
জাভাস্ক্রিপ্টের বিপরীতে, টাইপস্ক্রিপ্ট কোড সরাসরি ব্রাউজারে বা অন্য কোনও প্ল্যাটফর্মে চালানো যায় না এবং ব্রাউজার দ্বারা বোঝা যায় না। টার্গেট প্ল্যাটফর্মটি তখন প্লেইন জাভাস্ক্রিপ্ট চালাবে যা TypeScript এর ট্রান্সপিলার ব্যবহার করে .ts ফাইল থেকে তৈরি করা হয়েছিল।
2. TypeScript এর কিছু উল্লেখযোগ্য বৈশিষ্ট্য কি কি?
- স্ট্যাটিক টাইপিং হল টাইপস্ক্রিপ্টের একটি বৈশিষ্ট্য যা সংকলনের সময় টাইপ পরীক্ষা করতে সহায়তা করে। সুতরাং, এমনকি স্ক্রিপ্টটি কার্যকর না করেও, আপনি কোডটি লিখতে গিয়ে ভুলগুলি সনাক্ত করতে পারেন।
- আইটেম যোগ বা সরাতে টাইপস্ক্রিপ্ট ব্যবহার করে DOM পরিবর্তন করা যেতে পারে।
- Windows, macOS এবং Linux সহ যেকোনো অপারেটিং সিস্টেমে TypeScript কম্পাইলার ইনস্টল থাকতে পারে।
- ক্লাস, ইন্টারফেস এবং মডিউল হল টাইপস্ক্রিপ্ট দ্বারা অফার করা কিছু কার্যকারিতা। এটি এইভাবে ক্লায়েন্ট-সাইড এবং সার্ভার-সাইড উভয় বিকাশের জন্য অবজেক্ট-ভিত্তিক কোড তৈরি করতে পারে।
- ECMAScript 2015 (ES 6, 7) এর বেশিরভাগ বৈশিষ্ট্য ইতিমধ্যেই ক্লাস, ইন্টারফেস, অ্যারো ফাংশন ইত্যাদি সহ টাইপস্ক্রিপ্টে অন্তর্ভুক্ত করা হয়েছে।
- আপনি যদি জাভাস্ক্রিপ্টের গতিশীল টাইপিং ব্যবহার করেন তবে টাইপস্ক্রিপ্ট ঐচ্ছিক স্ট্যাটিক টাইপিংকেও সমর্থন করে।
3. TypeScript ব্যবহার করার কিছু সুবিধা কি কি?
- যেকোনো জাভাস্ক্রিপ্ট ইঞ্জিন বা ব্রাউজার টাইপস্ক্রিপ্ট চালাতে পারে কারণ এটি দ্রুত, সহজে শেখা এবং দ্রুত চলে।
- এটি জাভাস্ক্রিপ্টের মতো একই সিনট্যাক্স এবং শব্দার্থবিদ্যা শেয়ার করে।
- এটি ব্যাকএন্ড বিকাশকারীদের দ্বারা ফ্রন্ট-এন্ড কোড দ্রুত লেখার সুবিধা দেয়।
- এটি ES6 এবং ES7 ক্ষমতা অন্তর্ভুক্ত করে যা করতে পারে জাভাস্ক্রিপ্টে ফাংশন ES5 ইঞ্জিন যেমন Node.js।
- বিদ্যমান জাভাস্ক্রিপ্ট লাইব্রেরি যেমন Jquery, D3.js, ইত্যাদি।
- একটি জাভাস্ক্রিপ্ট স্ক্রিপ্ট যা ইতিমধ্যেই বিদ্যমান তা টাইপস্ক্রিপ্ট কোড আহ্বান করতে পারে। এটি বর্তমান জাভাস্ক্রিপ্ট ফ্রেমওয়ার্ক এবং লাইব্রেরির সাথে নির্বিঘ্নে সংহত করে।
4. TypeScript ব্যবহার করার কিছু অসুবিধা কি কি?
- টাইপস্ক্রিপ্টের সাথে কোডিং করার জন্য একটি দীর্ঘ সংকলন প্রক্রিয়া প্রয়োজন।
- এটি বিমূর্ত ক্লাস সমর্থন করে না।
- টাইপ সংজ্ঞা ফাইলের গুণমান একটি সমস্যা।
- যে কোনো তৃতীয় পক্ষের লাইব্রেরি ব্যবহার করার জন্য একটি সংজ্ঞা ফাইল থাকতে হবে।
- আমরা যদি ব্রাউজারে টাইপস্ক্রিপ্ট অ্যাপ্লিকেশন চালাতে চাই তবে টাইপস্ক্রিপ্টকে জাভাস্ক্রিপ্টে রূপান্তর করার জন্য একটি সংকলন পদক্ষেপ প্রয়োজন।
- জাভাস্ক্রিপ্ট বহু বছর ধরে ওয়েব ডেভেলপাররা ব্যবহার করে আসছে, এবং টাইপস্ক্রিপ্ট নতুন কিছু প্রদান করে না।
5. TypeScript এর উপাদান ঠিক কি?
টাইপস্ক্রিপ্টে, উপাদানগুলির তিনটি প্রধান বিভাগ রয়েছে, যার মধ্যে রয়েছে:
- ভাষা: এটি টাইপ, কীওয়ার্ড এবং সিনট্যাক্সের জন্য টীকা অন্তর্ভুক্ত করে।
- টাইপস্ক্রিপ্ট কম্পাইলার: TypeScript নির্দেশাবলী এই কম্পাইলার (tsc) দ্বারা জাভাস্ক্রিপ্টে অনুবাদ করা হয়।
- টাইপস্ক্রিপ্ট ভাষা পরিষেবা: ভাষা পরিষেবা মৌলিক কম্পাইলার প্রক্রিয়ার উপরে দ্বিতীয় স্তর হিসাবে সম্পাদক-সদৃশ অ্যাপগুলি অফার করে৷ সাধারণ সম্পাদনা ক্রিয়াকলাপের মানক সেট ভাষা পরিষেবা দ্বারা সমর্থিত।
6. আপনি টাইপস্ক্রিপ্টে ইন্টারফেস ব্যাখ্যা করতে পারেন?
টাইপস্ক্রিপ্ট সত্তার সিনট্যাক্স নির্দিষ্ট করতে ইন্টারফেস ব্যবহার করে। অন্য কথায়, অবজেক্ট বা আইটেমগুলির অ্যারের মতো ডেটা ফর্মগুলি ইন্টারফেস ব্যবহার করে বর্ণনা করা যেতে পারে। ইন্টারফেস কীওয়ার্ড, ইন্টারফেসের নাম এবং এর সংজ্ঞা ইন্টারফেস ঘোষণা করতে ব্যবহৃত হয়। আসুন একটি ব্যবহারকারী বস্তুর মৌলিক ইন্টারফেস পরীক্ষা করা যাক।
একটি ভেরিয়েবলের ধরন তারপর ইন্টারফেস ব্যবহার করে সেট করা যেতে পারে (যেভাবে আপনি একটি ভেরিয়েবলের জন্য আদিম প্রকারগুলি বরাদ্দ করেন)। ইন্টারফেসের বৈশিষ্ট্যগুলি তখন ব্যবহারকারীর প্রকারের একটি পরিবর্তনশীল দ্বারা পূরণ করা হবে।
আপনার টাইপস্ক্রিপ্ট প্রকল্প ইন্টারফেস থেকে উপকৃত হয় কারণ তারা অভিন্নতা প্রদান করে। উপরন্তু, ইন্টারফেসগুলি IDE স্বয়ংসম্পূর্ণ ক্ষমতা বৃদ্ধি করে এবং কনস্ট্রাক্টর এবং পদ্ধতিগুলিতে সঠিক মান সরবরাহ করা হচ্ছে এমন গ্যারান্টি দিয়ে আপনার প্রকল্পের সরঞ্জামগুলিকে উন্নত করে৷
7. TypeScript এ ভেরিয়েবল কি এবং কিভাবে বিভিন্ন উপায়ে ঘোষণা করা হয়?
একটি পরিবর্তনশীল মেমরির একটি বিশেষভাবে মনোনীত এলাকা যা মান ধরে রাখতে ব্যবহৃত হয়। একটি কোলন (:) পরিবর্তনশীল নামের পরে স্থাপন করা হয় এবং TypeScript-এ একটি ভেরিয়েবল ঘোষণা করার সময় টাইপ দ্বারা অনুসরণ করা হয়। আমরা var কীওয়ার্ড দিয়ে ভেরিয়েবল ঘোষণা করি, ঠিক যেমন জাভাস্ক্রিপ্টে।
টাইপস্ক্রিপ্টে একটি পরিবর্তনশীল ঘোষণা করার সময় কিছু নির্দেশিকা অবশ্যই পালন করা উচিত:
- নামটি একটি সংখ্যা দিয়ে শুরু হতে পারে না।
- পরিবর্তনশীল নামের অক্ষর বা সংখ্যা থাকতে হবে।
- ডলার চিহ্ন ($) এবং আন্ডারস্কোর (_) হল একমাত্র বিশেষ অক্ষর যা এই ক্ষেত্রে অনুমোদিত।
8. কিভাবে একটি ইন্টারফেসের একটি উপসেট একটি নতুন টাইপ তৈরি করতে ব্যবহার করা যেতে পারে?
একটি বিদ্যমান টাইপ বা ইন্টারফেস সরবরাহ করে এবং নতুন টাইপ থেকে বাদ দেওয়ার জন্য কীগুলি বেছে নিয়ে, আপনি ইউটিলিটি টাইপ বাদ দিয়ে টাইপস্ক্রিপ্টে একটি নতুন টাইপ তৈরি করতে পারেন।
যে উদাহরণটি অনুসরণ করা হয়েছে তা প্রদর্শন করে যে কিভাবে UserPreview নামক একটি নতুন টাইপ তৈরি করা যায় যা ইউজার ইন্টারফেসের উপর ভিত্তি করে কিন্তু ইমেল সম্পত্তি বাদ দেয়।
9. 'যেকোনো' প্রকার বলতে আপনি কী বোঝেন এবং কখন সেগুলি ব্যবহার করব?
কখনও কখনও আপনাকে একটি ভেরিয়েবলে একটি মান সংরক্ষণ করতে হবে, তবে আপনি আগে থেকেই ভেরিয়েবলের ধরণ সম্পর্কে নিশ্চিত নন। মানটি ব্যবহারকারীর ইনপুট বা একটি API অনুরোধ থেকে উদ্ভূত হতে পারে, উদাহরণস্বরূপ। আপনি "যেকোন" টাইপ ব্যবহার করে একটি ভেরিয়েবল টাইপকে যেকোনো ধরনের মান দিতে পারেন।
যখন একটি ভেরিয়েবলের ধরন স্পষ্টভাবে নির্দিষ্ট করা হয় না এবং কম্পাইলার প্রসঙ্গ থেকে এটি নির্ধারণ করতে অক্ষম হয়, টাইপস্ক্রিপ্ট বিশ্বাস করে যে ভেরিয়েবলটি যেকোনো ধরনের।
10. TypeScript কিভাবে ঐচ্ছিক স্ট্যাটিকালি টাইপ করা সিনট্যাক্স সহ একটি ভাষা?
টাইপস্ক্রিপ্টে একটি ভেরিয়েবলের ধরন উপেক্ষা করার জন্য কম্পাইলারকে নির্দেশ দেওয়া সম্ভব কারণ এটি ঐচ্ছিকভাবে স্ট্যাটিকভাবে টাইপ করা হয়। যেকোন ডাটা টাইপ ব্যবহার করা যেতে পারে ভেরিয়েবলের যে কোন ধরনের মান বরাদ্দ করতে। কম্পাইল করার সময়, TypeScript কোনো ত্রুটি পরীক্ষা প্রদান করবে না।
11. TypeScript-এ, মডিউল বলতে কী বোঝায়?
মডিউল ব্যবহার করে প্রাসঙ্গিক ভেরিয়েবল, ফাংশন, ক্লাস, ইন্টারফেস ইত্যাদি একসাথে গ্রুপ করা কার্যকর। এটি ব্যবহার করা যেতে পারে, তবে বৈশ্বিক সুযোগে নয়, শুধুমাত্র তার নিজস্ব সুযোগের মধ্যে।
মোটকথা, একটি মডিউলের সংজ্ঞায়িত ভেরিয়েবল, ফাংশন, ক্লাস এবং ইন্টারফেস সরাসরি মডিউলের বাইরে থেকে অ্যাক্সেস করা যায় না।
এক্সপোর্ট কীওয়ার্ডটি একটি মডিউল তৈরি করতে ব্যবহার করা যেতে পারে, যখন আমদানি কীওয়ার্ডটি অন্য মডিউলে একটি মডিউল অন্তর্ভুক্ত করতে ব্যবহার করা যেতে পারে।
12. TypeScript এ "enums" কিভাবে কাজ করে?
নামযুক্ত ধ্রুবকগুলির একটি সংগ্রহকে সংজ্ঞায়িত করার একটি পদ্ধতি হল enums বা গণনাকৃত প্রকারগুলি ব্যবহার করা। এই ডেটা স্ট্রাকচারগুলির একটি নির্দিষ্ট দৈর্ঘ্য এবং নির্দিষ্ট মানগুলির একটি সংগ্রহ রয়েছে।
TypeScript-এ প্রদত্ত মানের বিকল্পগুলির একটি সংগ্রহের প্রতিনিধিত্ব করার সময়, enums প্রায়শই কী/মান জোড়ার সেট ব্যবহার করে সম্ভাবনাগুলি বর্ণনা করতে ব্যবহৃত হয়।
চলুন বিভিন্ন ধরনের ব্যবহারকারীদের প্রদান করতে ব্যবহৃত একটি enum-এর একটি দৃষ্টান্ত দেখি।
Enums অভ্যন্তরীণভাবে নিয়মিত জাভাস্ক্রিপ্ট অবজেক্টে রূপান্তরিত হয় TypeScript দ্বারা সংকলন অনুসরণ করে। enums এর ব্যবহার তাই বেশ কয়েকটি পৃথক কন্সট ভেরিয়েবল ব্যবহার করার চেয়ে পছন্দনীয়।
আপনার কোড টাইপ-নিরাপদ এবং বোঝা সহজ কারণ enums প্রদান করে গ্রুপিং.
13. একটি বহিরাগত মডিউল থেকে একটি অভ্যন্তরীণ মডিউলকে কী পার্থক্য করে?
অভ্যন্তরীণ মডিউল:
- অভ্যন্তরীণ মডিউলগুলি টাইপস্ক্রিপ্টের পূর্ববর্তী পুনরাবৃত্তির একটি বৈশিষ্ট্য ছিল।
- অভ্যন্তরীণ মডিউলগুলির নাম এবং বডি মডিউল ঘোষণা ব্যবহার করে সংজ্ঞায়িত করা হয়।
- এগুলি স্থানীয় বা রপ্তানি করা অন্যান্য মডিউলের সদস্য।
- ক্লাস, ইন্টারফেস, ফাংশন এবং ভেরিয়েবলগুলিকে অভ্যন্তরীণ মডিউলগুলিতে একত্রিত করা হয়, যা অন্য মডিউলে রপ্তানি করা যেতে পারে।
বাহ্যিক মডিউল:
- সাম্প্রতিক সংস্করণে, বহিরাগত মডিউলগুলিকে মডিউল হিসাবে উল্লেখ করা হয়।
- একটি বাহ্যিক মডিউল হিসাবে পরিচিত একটি পৃথক উৎস ফাইল এগুলি তৈরি করতে ব্যবহৃত হয় এবং প্রতিটিতে কমপক্ষে একটি আমদানি বা রপ্তানি ঘোষণা রয়েছে।
- সাম্প্রতিক সংস্করণে, বহিরাগত মডিউলগুলিকে মডিউল হিসাবে উল্লেখ করা হয়।
- মডিউল সংজ্ঞাগুলির অভ্যন্তরীণ বিবৃতিগুলি বহিরাগত মডিউল ব্যবহার করে লুকানো যেতে পারে, শুধুমাত্র সংজ্ঞায়িত পরিবর্তনশীলের সাথে সংযুক্ত পদ্ধতি এবং আর্গুমেন্টগুলিকে দৃশ্যমান রেখে৷
14. TypeScript এর বেনামী ফাংশন বলতে কী বোঝায়?
বেনামী হিসাবে শ্রেণীবদ্ধ ফাংশনগুলির একটি শনাক্তকারী হিসাবে একটি ফাংশনের নাম নেই৷ এই রুটিনগুলি রানটাইমের সময় গতিশীলভাবে সংজ্ঞায়িত করা হয়। নিয়মিত ফাংশনের মতো, বেনামী ফাংশন ইনপুট নিতে পারে এবং ফলাফল তৈরি করতে পারে।
একটি বেনামী ফাংশন তৈরি হয়ে গেলে এটি সাধারণত পৌঁছানো যায় না। ভেরিয়েবল একটি বেনামী ফাংশন বরাদ্দ করা যেতে পারে.
15. টাইপস্ক্রিপ্টে, একটি নামস্থান কী এবং আপনি কীভাবে একটি ঘোষণা করবেন?
নেমস্পেস যৌক্তিকভাবে কার্যকারিতাগুলিকে গোষ্ঠীভুক্ত করে। এগুলি অভ্যন্তরীণভাবে টাইপস্ক্রিপ্ট লিগ্যাসি কোড সংরক্ষণ করে। এটি বিশেষ সংযোগের সাথে বৈশিষ্ট্য এবং জিনিসগুলিকে অন্তর্ভুক্ত করে।
একটি নামস্থানের আরেকটি নাম হল একটি অভ্যন্তরীণ মডিউল। ইন্টারফেস, ক্লাস, ফাংশন, এবং ভেরিয়েবলগুলি সংযুক্ত কার্যকারিতার একটি সংগ্রহ প্রদান করতে একটি নামস্থানে অন্তর্ভুক্ত করা যেতে পারে।
16. টাইপস্ক্রিপ্ট কোন অ্যাক্সেস মডিফায়ার সমর্থন করে?
টাইপস্ক্রিপ্টের সর্বজনীন, ব্যক্তিগত, এবং সুরক্ষিত অ্যাক্সেস মডিফায়ারগুলি কীভাবে কোনও শ্রেণির সদস্যের অ্যাক্সেসযোগ্যতা নিয়ন্ত্রণ করতে ব্যবহার করা যেতে পারে তার উদাহরণ নিম্নে দেওয়া হল:
- সর্বজনীন - ক্লাসের প্রতিটি সদস্য, এর সমস্ত বংশধর শ্রেণী এবং ক্লাসের প্রতিটি দৃষ্টান্তের জন্য অ্যাক্সেস উপলব্ধ।
- সুরক্ষিত - এগুলি ক্লাসের প্রতিটি সদস্য এবং এর সমস্ত সাবক্লাসের কাছে অ্যাক্সেসযোগ্য৷ যাইহোক, একটি ক্লাস উদাহরণ অ্যাক্সেস করতে পারে না।
- তাদের ব্যক্তিগত-অ্যাক্সেস শুধুমাত্র ক্লাস সদস্যদের জন্য সীমাবদ্ধ.
যেহেতু জাভাস্ক্রিপ্ট সহজ, যদি একটি অ্যাক্সেস মডিফায়ার দেওয়া না হয়, তবে এটি সর্বজনীন বলে ধরে নেওয়া হয়।
17. টাইপস্ক্রিপ্ট কি ফাংশন ওভারলোডিংয়ের অনুমতি দেয়?
হ্যাঁ, ফাংশন ওভারলোডিং TypeScript দ্বারা সমর্থিত। কিন্তু এখন এটা করা হচ্ছে অদ্ভুত। অতএব, টাইপস্ক্রিপ্টের সাথে ওভারলোড করার সময়, বিভিন্ন স্বাক্ষর সহ শুধুমাত্র একটি বাস্তবায়ন আছে।
যদিও দ্বিতীয় স্বাক্ষরে টাইপ টেক্সটের একটি প্যারামিটার থাকে, প্রথম স্বাক্ষরে শুধুমাত্র টাইপ নম্বরের একটি প্যারামিটার থাকে। তৃতীয় ফাংশন, যার মধ্যে যেকোন প্রকারের একটি আর্গুমেন্ট রয়েছে, এতে প্রকৃত বাস্তবায়ন রয়েছে।
বাস্তবায়ন তারপর প্রদত্ত প্যারামিটারের ধরন নির্ধারণ করে এবং সেই সংকল্প অনুসারে কোডের একটি পৃথক বিভাগ চালায়।
18. কিভাবে টাইপস্ক্রিপ্ট ফাংশনে ঐচ্ছিক আর্গুমেন্টের অনুমতি দেয়?
জাভাস্ক্রিপ্টের বিপরীতে, যদি আপনি একটি ফাংশনকে কল করার চেষ্টা করেন তার ফাংশন স্বাক্ষরে বর্ণিত নির্দিষ্ট পরিমাণ এবং পরামিতিগুলির ধরন উল্লেখ না করে, টাইপস্ক্রিপ্ট কম্পাইলার একটি ত্রুটি উত্থাপন করবে।
আপনি এই সমস্যাটি সমাধান করতে প্রশ্ন চিহ্ন চিহ্ন ('?') ব্যবহার করে ঐচ্ছিক প্যারামিটার ব্যবহার করতে পারেন। এটি দেখায় যে ঐচ্ছিক পরামিতিগুলি একটি "?" যোগ করে চিহ্নিত করা যেতে পারে। যারা একটি মান পেতে পারে বা নাও পেতে পারে।
19. কিভাবে var, let, এবং const একে অপরের থেকে পরিবর্তিত হয়?
একটি ভেরিয়েবল ঘোষণা করার তিনটি ভিন্ন উপায় TypeScript দ্বারা অফার করা হয়, প্রতিটি প্রস্তাবিত অ্যাপ্লিকেশন সহ।
Var: জাভাস্ক্রিপ্টের var ভেরিয়েবলের আচরণ এবং স্কোপিং নির্দেশিকা সহ একটি গ্লোবাল বা ফাংশন-স্কোপড ভেরিয়েবল ঘোষণা করে। ভেরিয়েবল ঘোষণা করার সময় তাদের মান সেট করার প্রয়োজন নেই।
দিন: একটি স্থানীয়ভাবে স্কোপড ব্লক ভেরিয়েবল ঘোষণা করে। ভেরিয়েবল ঘোষণা করার সময় ভেরিয়েবলের মান সেট করার প্রয়োজন নেই। "ব্লক-স্কোপড লোকাল ভেরিয়েবল" শব্দটি এমন একটি ভেরিয়েবলকে বোঝায় যা শুধুমাত্র সেই ব্লকের ভিতর থেকে অ্যাক্সেস করা যেতে পারে যেখানে এটি রয়েছে, যেমন একটি ফাংশন, একটি if/else ব্লক বা একটি লুপ। var এর বিপরীতে, ঘোষিত হওয়ার আগে ভেরিয়েবলগুলি পড়া বা লেখা যাবে না।
const: একটি ব্লক-স্কোপড ধ্রুবকের জন্য একটি মান ঘোষণা করে যা শুরু হওয়ার পরে পরিবর্তন করা যায় না। ঘোষণা করার আগে কনস্ট ভেরিয়েবলগুলি শুরু করতে হবে। ভেরিয়েবলের জন্য যেগুলি তাদের সমগ্র অস্তিত্বের সময় স্থির থাকে, এটি সর্বোত্তম।
20. টাইপস্ক্রিপ্টে, ডেকোরেটর বর্ণনা কর?
একটি আনুষঙ্গিক, সম্পত্তি, পরামিতি, শ্রেণী, ফাংশন, বা ডেকোরেটর সবই একটি নির্দিষ্ট উপায়ে ডেকোরেটর হিসাবে ঘোষণা করা যেতে পারে। ডেকোরেটর হল @expression প্রিফিক্স সহ ফাংশন যা সজ্জিত ঘোষণার বিবরণ সহ রানটাইমে আহ্বান করা হবে।
ডেকোরেটরদের কাজ করার জন্য অভিব্যক্তিটিকে অবশ্যই একটি ফাংশন মূল্যায়ন করতে হবে।
টাইপস্ক্রিপ্ট ডেকোরেটর বর্তমান কোডে ঘোষণামূলকভাবে টীকা এবং তথ্য যোগ করার লক্ষ্য প্রদান করে।
আমাদের tsconfig.json ফাইলে বা কমান্ড লাইনে, ডেকোরেটরদের জন্য পরীক্ষামূলক সমর্থন সক্ষম করার জন্য আপনাকে অবশ্যই পরীক্ষামূলক ডেকোরেটর কম্পাইলার বিকল্পটি সক্রিয় করতে হবে:
21. TypeScript-এ Mixins বলতে কী বোঝায়?
Mixins হল জাভাস্ক্রিপ্টে পুনঃব্যবহারযোগ্য অংশ থেকে ক্লাস তৈরি করার এবং আংশিক ক্লাস মিশ্রিত করে আরও জটিল পূর্ণ ক্লাস তৈরি করার একটি কৌশল।
ধারণাটি সোজা: ফাংশন B ক্লাস A গ্রহণ করে এবং এর কার্যকারিতা প্রাপ্ত করার জন্য A ক্লাস B প্রসারিত করার বিপরীতে তার কার্যকারিতা যুক্ত করে একটি নতুন ক্লাস প্রদান করে। এই ক্ষেত্রে ফাংশন B একটি মিক্সিন।
22. টাইপস্ক্রিপ্টে টাইপ উপনামগুলি ঠিক কী?
টাইপ উপনাম একটি প্রকারের নাম পরিবর্তন করে। টাইপ উপনাম, যেমন ইন্টারফেস, আদিম, ইউনিয়ন, টিপলস এবং অন্য যেকোন প্রকারের নাম দিতে ব্যবহার করা যেতে পারে যা অন্যথায় হাতে সংজ্ঞায়িত করতে হবে।
অ্যালিয়াসিং একটি নতুন প্রকার তৈরি করে না; বরং, এটি একটি বিদ্যমান প্রকারের নাম পরিবর্তন করে। একটি আদিম উপনাম সত্যিই ব্যবহারিক নয়, যদিও এটি ডকুমেন্টেশনের জন্য উপকারী হতে পারে।
টাইপ উপনাম, ইন্টারফেসের মতো, সর্বজনীন হতে পারে; আপনাকে যা করতে হবে তা হল টাইপ প্যারামিটার যোগ করুন এবং উপনাম ঘোষণার ডান দিকে তাদের ব্যবহার করুন।
23. "স্কোপ পরিবর্তনশীল" শব্দটির অর্থ কী?
জাভাস্ক্রিপ্ট স্থানীয় এবং বিশ্বব্যাপী উভয় স্কোপ ভেরিয়েবল সমর্থন করে। সুযোগ হল বস্তু, ভেরিয়েবল এবং ফাংশনের একটি সংগ্রহ।
দুটি স্কোপে একটি পরিবর্তনশীল ঘোষণা করার একটি উদাহরণ হল:
- স্থানীয় স্কোপের সাথে পরিবর্তনশীল - এটি ফাংশনের মধ্যে ব্যবহারের জন্য একটি ফাংশন অবজেক্ট হিসাবে কাজ করে।
- বৈশ্বিক সুযোগের সাথে পরিবর্তনশীল - এই উইন্ডো অবজেক্টটি ফাংশনের ভিতরে এবং বাইরে উভয়ই ব্যবহার করা যেতে পারে
24. noImplicitAny ঠিক কিসের জন্য ব্যবহৃত হয়?
টাইপস্ক্রিপ্ট প্রজেক্টের জন্য tsconfig.json কনফিগারেশন ফাইলের noImplicitAny প্রপার্টি দ্বারা আপনার প্রজেক্টের অন্তর্নিহিত যেকোন প্রকারের টাইপস্ক্রিপ্ট কম্পাইলারের ট্রিটমেন্ট পরিবর্তন করা হয়।
noImplicitAny পতাকা সত্য বা মিথ্যা সেট করা যেতে পারে এবং আরম্ভ করার পরে সর্বদা পরিবর্তনযোগ্য। প্রদত্ত যে প্রতিটি প্রকল্প অনন্য, এই সংখ্যাটি কী হওয়া উচিত তার কোনও সঠিক বা ভুল উত্তর নেই৷
পতাকার চালু এবং বন্ধ অবস্থার মধ্যে পার্থক্য বোঝা আপনাকে পতাকার জন্য কোন সেটিং ব্যবহার করতে হবে তা নির্বাচন করতে সাহায্য করতে পারে।
যদি noImplicitAny পতাকা মিথ্যা (ডিফল্ট) সেট করা থাকে তাহলে কম্পাইলার একটি ভেরিয়েবলের ধরন নির্ধারণ করে না। টাইপ পরিবর্তে কম্পাইলার দ্বারা ডিফল্টরূপে যে কোনো সেট করা হয়.
যাইহোক, noImplicitAny বিকল্পটি সত্য হিসাবে সেট করা থাকলে, কম্পাইলার টাইপটি অনুমান করার চেষ্টা করবে এবং এটি করতে অক্ষম হলে একটি কম্পাইল-টাইম ত্রুটি উত্থাপন করবে।
25. কীভাবে মিলন এবং ছেদগুলির ধরন একে অপরের থেকে আলাদা?
স্ক্র্যাচ থেকে নতুন ধরণের তৈরি করার পরিবর্তে, ইউনিয়ন এবং ইন্টারসেকশন প্রকারগুলি আপনাকে বিদ্যমান প্রকারগুলি রচনা এবং মিশ্রিত করার অনুমতি দেয়৷ মিলন এবং ছেদ উভয়েরই স্বাতন্ত্র্যসূচক গুণাবলী রয়েছে যা তাদের নির্দিষ্ট ব্যবহারের ক্ষেত্রে নিখুঁত করে তোলে।
একটি প্রকার যা বিভিন্ন ধরণের একটি হতে পারে তাকে ইউনিয়ন টাইপ হিসাবে উল্লেখ করা হয়। নতুন ধরনের ব্যবহার করা হবে যে ধরনের তালিকা | ব্যবহার করে বিভক্ত করা হয় (উল্লম্ব বার) ইউনিয়ন প্রকারের প্রতীক।
আসুন একটি দৃষ্টান্ত দেখি:
অন্যদিকে, ছেদকে এমন একটি প্রকার হিসাবে সংজ্ঞায়িত করা হয় যা অনেকগুলি প্রকারকে একত্রিত করে, প্রতিটি প্রকারের সমস্ত বৈশিষ্ট্যকে একত্রিত করে একটি নতুন প্রকার গঠন করে। যে ধরণের তালিকা একত্রিত হবে তা & চিহ্ন ব্যবহার করে ছেদগুলিতে বিভক্ত।
আসুন একটি দৃষ্টান্ত পরীক্ষা করা যাক:
26. আপনি কিভাবে একটি টাইপস্ক্রিপ্ট ঘোষণা কীওয়ার্ড সংজ্ঞায়িত করবেন?
জাভাস্ক্রিপ্ট লাইব্রেরি বা ফ্রেমওয়ার্কগুলিতে কোনও টাইপস্ক্রিপ্ট ঘোষণা ফাইল নেই। যাইহোক, কোনো সংকলন ত্রুটির সম্মুখীন না হয়েই টাইপস্ক্রিপ্ট ফাইলে ব্যবহার করার জন্য আপনাকে ডিক্লেয়ার কীওয়ার্ড ব্যবহার করতে হবে।
আপনি যখন এমন একটি ভেরিয়েবল নির্দিষ্ট করতে চান যা ইতিমধ্যেই অন্য কোথাও বিদ্যমান থাকতে পারে, তখন আপনি পরিবেষ্টিত ঘোষণা এবং পদ্ধতিতে ঘোষণা কীওয়ার্ড ব্যবহার করেন।
27. TypeScript-এ, জেনেরিক কি?
টাইপস্ক্রিপ্ট জেনেরিক্স নামক একটি টুল পুনর্ব্যবহারযোগ্য অংশ তৈরির জন্য একটি পদ্ধতি অফার করে। শুধুমাত্র এক ধরনের ডেটা নিয়ে কাজ করার পরিবর্তে, এটি এমন উপাদানগুলি বিকাশ করতে পারে যা বিভিন্ন ধরণের ডেটার সাথে কাজ করতে পারে।
উপরন্তু, এটি দক্ষতা বা উত্পাদনশীলতা বলিদান ছাড়া টাইপ নিরাপত্তা প্রদান করে। আমরা জেনেরিকের জন্য জেনেরিক ক্লাস, জেনেরিক ফাংশন, জেনেরিক পদ্ধতি এবং জেনেরিক ইন্টারফেস তৈরি করতে পারি।
জেনেরিকগুলি অত্যন্ত টাইপ করা সংগ্রহগুলি কারণ একটি টাইপ প্যারামিটার খোলা () এবং বন্ধ (>) বন্ধনীর মধ্যে লেখা হয়। এটি T নামক একটি অনন্য ধরণের ভেরিয়েবল ব্যবহার করে যা প্রকারের জন্য দাঁড়ায়।
28. TypeScript-এ JSX বলতে কী বোঝায়?
JSX হল একটি বৈধ জাভাস্ক্রিপ্ট যা একটি এমবেডযোগ্য XML-এর মতো সিনট্যাক্স থেকে রূপান্তর করা যেতে পারে। প্রতিক্রিয়া কাঠামোর পাশাপাশি, জেএসএক্স জনপ্রিয়তা অর্জন করেছে।
জাভাস্ক্রিপ্টে জেএসএক্সের সরাসরি সংকলন, টাইপ যাচাইকরণ এবং এম্বেডিং টাইপস্ক্রিপ্ট দ্বারা সমর্থিত। আপনাকে অবশ্যই আপনার ফাইলটি a.tsx এক্সটেনশন দিতে হবে এবং আপনি যদি এটি ব্যবহার করতে চান তবে JSX বিকল্পটি সক্রিয় করতে হবে।
29. টাইপস্ক্রিপ্ট অ্যাম্বিয়েন্ট কী এবং কখন সেগুলি ব্যবহার করা উচিত?
কম্পাইলারকে প্রকৃত সোর্স কোড সম্পর্কে অবহিত করা হয় যা পরিবেষ্টিত ঘোষণার মাধ্যমে অন্য কোথাও অবস্থিত।
আমরা যদি রানটাইমে এই সোর্স কোডগুলি ব্যবহার করার চেষ্টা করি তবে সেগুলি উপস্থিত না থাকলে এটি কোনও পূর্ব বিজ্ঞপ্তি ছাড়াই ভেঙে যাবে৷ নথির মতো ফাইলগুলি হল পরিবেষ্টিত ঘোষণার ফাইল৷
যদি উৎস পরিবর্তন হয়, ডকুমেন্টেশন আপডেট করা আবশ্যক, এবং পরিবেষ্টিত ঘোষণা ফাইল পরিবর্তন না হলে কম্পাইলার সমস্যা হবে।
উপরন্তু, এটি আমাদেরকে সুপরিচিত জাভাস্ক্রিপ্ট লাইব্রেরিগুলিকে সুবিধা দিতে সক্ষম করে যা ইতিমধ্যেই ব্যাপকভাবে ব্যবহৃত হয়, যেমন jQuery, AngularJS, NodeJS, ইত্যাদি।
30. টাইপস্ক্রিপ্টে বিমূর্ত শ্রেণী বলতে কী বোঝ?
বিমূর্ত শ্রেণী সরাসরি অবজেক্ট ইনস্ট্যান্টেশনের অনুমতি না দিয়ে একটি বস্তুর চুক্তিকে সংজ্ঞায়িত করে। যাইহোক, একটি বিমূর্ত শ্রেণী তার সদস্যের বাস্তবায়ন তথ্যও দিতে পারে।
একটি বিমূর্ত শ্রেণীতে এক বা একাধিক বিমূর্ত সদস্য পাওয়া যাবে। সুপারক্লাসের বিমূর্ত সদস্যদের অবশ্যই বিমূর্ত শ্রেণীকে প্রসারিত করে এমন যেকোন শ্রেণীর দ্বারা প্রদত্ত একটি বাস্তবায়ন থাকতে হবে।
আসুন একটি বিমূর্ত শ্রেণীর একটি TypeScript উদাহরণ এবং কিভাবে একটি ভিন্ন শ্রেণী এটিকে প্রসারিত করতে পারে তা দেখে নেওয়া যাক। যদিও নীচের উদাহরণে গাড়ি এবং বাইক উভয় শ্রেণীই যানবাহন শ্রেণীকে প্রসারিত করে, তারা প্রত্যেকে একটি অনন্য উপায়ে ড্রাইভ() ফাংশন বাস্তবায়ন করে।
31. টাইপস্ক্রিপ্ট ম্যাপ ফাইল আসলে কি?
টাইপস্ক্রিপ্ট ম্যাপ ফাইল নামক একটি উৎস ম্যাপ ফাইলে আমাদের আসল ফাইলগুলি সম্পর্কে ডেটা থাকে। সোর্স ম্যাপ ফাইল বা .map ফাইলগুলি, জাভাস্ক্রিপ্ট কোড যা আউটপুট এবং টাইপস্ক্রিপ্ট সোর্স ফাইলগুলির মধ্যে ম্যাপ করার জন্য টুলগুলিকে অনুমতি দেয় যা এটি তৈরি করে।
উপরন্তু, এই ফাইলগুলি ডিবাগারদের দ্বারা গ্রাস করা যেতে পারে, যা আমাদের জাভাস্ক্রিপ্ট ফাইলের পরিবর্তে টাইপস্ক্রিপ্ট ফাইল ডিবাগ করার অনুমতি দেয়।
32. TypeScript-এ, টাইপ দাবী কি?
যদিও টাইপ অ্যাসার্শন অন্যান্য ভাষায় টাইপকাস্টিং যেমন C# এবং জাভাতে কাজ করে, এটি টাইপ যাচাইকরণ বা ডেটা পুনর্বিন্যাস করে না।
যদিও টাইপ অ্যাসার্শন রানটাইমের উপর কোন প্রভাব ফেলে না, টাইপ কাস্টিং এই সমর্থন প্রদান করে। অন্য দিকে টাইপ দাবী, শুধুমাত্র কম্পাইলার দ্বারা ব্যবহার করা হয় এবং আমরা কীভাবে আমাদের কোড পরীক্ষা করতে চাই তার নির্দেশনা প্রদান করে।
উপসংহার
উপসংহারে, আমরা আশা করি এই TypeScript সাক্ষাত্কারের প্রশ্নগুলি আপনার জন্য সহায়ক হবে, আপনি একজন ডেভেলপার যে একজন চাকরির ইন্টারভিউয়ের জন্য প্রস্তুত হচ্ছেন বা একজন নিয়োগকারী ম্যানেজার যিনি সেরা আবেদনকারীকে খুঁজে বের করার চেষ্টা করছেন।
মনে রাখবেন যে নিয়োগ প্রক্রিয়ায় কেবল প্রযুক্তিগত দক্ষতার চেয়ে বেশি কিছু জড়িত। আপনি যে চাকরিতে ল্যান্ড করেছেন (বা উপযুক্ত আবেদনকারীকে খুঁজে বের করুন) তা নিশ্চিত করার জন্য, অতীতের অভিজ্ঞতা এবং নরম দক্ষতা সমানভাবে গুরুত্বপূর্ণ।
অনেক টাইপস্ক্রিপ্ট ইন্টারভিউ প্রশ্ন ওপেন-এন্ডেড এবং একটিও সঠিক উত্তর নেই, তাই মনে রাখবেন।
ইন্টারভিউয়াররা আপনার প্রতিক্রিয়ার পিছনে যুক্তিতে আগ্রহী।
আপনি কীভাবে আপনার উত্তরে পৌঁছেছেন তা ব্যাখ্যা করে ফলো-আপ অনুসন্ধানের জন্য সর্বদা প্রস্তুত থাকুন। আপনার চিন্তা প্রক্রিয়া বর্ণনা করুন।
নির্দেশিকা সমন্ধে মতামত দিন