TypeScript কম্পাইলার (tsc) কোডের টাইপ চেক এবং JavaScript এ রূপান্তর (transpile) করার জন্য ব্যবহৃত হয়। tsc কম্পাইলারটি অনেক অপশন প্রদান করে, যেগুলি আপনার TypeScript কোড কিভাবে কম্পাইল হবে তা নিয়ন্ত্রণ করে। কম্পাইলার অপশনগুলির মাধ্যমে আপনি টাইপ চেকিং, আউটপুট ফাইলের গঠন, টাইপ ডিফিনিশন এবং অন্যান্য গুরুত্বপূর্ণ বৈশিষ্ট্য কাস্টমাইজ করতে পারেন।
এই টিউটোরিয়ালে TypeScript কম্পাইলার অপশন এবং তাদের ব্যবহার দেখানো হবে।
১. tsconfig.json ফাইল
TypeScript প্রকল্পের জন্য কম্পাইলার অপশন কনফিগার করার প্রধান উপায় হলো tsconfig.json ফাইল ব্যবহার করা। এই ফাইলটি TypeScript প্রজেক্টের রুট ডিরেক্টরিতে থাকে এবং এতে সমস্ত কম্পাইলার অপশন এবং ফাইল ইনক্লুশন/এক্সক্লুশন নির্দেশাবলী থাকে।
উদাহরণ: tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"outDir": "./dist"
},
"include": [
"src/**/*"
]
}
এখানে:
- compilerOptions: কম্পাইলার অপশনগুলো এখানে ডিফাইন করা হয়।
- include: এই ক্ষেত্রটি নির্দিষ্ট ফাইল বা ডিরেক্টরি চিহ্নিত করে, যা কম্পাইল হবে।
২. কম্পাইলার অপশনস এবং তাদের ব্যবহার
TypeScript কম্পাইলারে বিভিন্ন ধরনের অপশন ব্যবহার করা যেতে পারে, যা আপনার প্রোজেক্টের প্রয়োজন অনুসারে কাস্টমাইজ করা যায়।
২.১. target
এই অপশনটি নির্ধারণ করে যে TypeScript কে কোন JavaScript সংস্করণে কম্পাইল করা হবে। এটি TypeScript কোডের রূপান্তরযোগ্য JavaScript ফিচারের স্তর নির্ধারণ করে।
উদাহরণ:
es5: ECMAScript 5 এর জন্য কম্পাইল করবে।es6বাes2015: ECMAScript 6 (ES6) এর জন্য।esnext: বর্তমান JavaScript ফিচারসমূহ (যেমন async/await, modules) ব্যবহার করবে।
"target": "es5"
২.২. module
এই অপশনটি নির্ধারণ করে TypeScript কে কোন মডিউল সিস্টেমে রূপান্তর করতে হবে। এটি Node.js, Browser, বা অন্যান্য প্ল্যাটফর্মের জন্য উপযোগী মডিউল সিস্টেম নির্ধারণ করতে সাহায্য করে।
উদাহরণ:
commonjs: Node.js এর জন্য।es6: ES6 মডিউল সিস্টেম (import/export)।amd,system,umd: অন্যান্য মডিউল সিস্টেম।
"module": "commonjs"
২.৩. strict
এই অপশনটি TypeScript এর কঠোর টাইপ চেকিং সক্ষম করে। যখন strict অপশনটি true সেট করা হয়, তখন TypeScript কোডে টাইপ সম্পর্কিত সুনির্দিষ্ট ত্রুটি চেক করবে, যা কোডের নিরাপত্তা এবং ডেভেলপমেন্টে সহায়ক।
উদাহরণ:
"strict": true
strict চালু হলে, TypeScript সুনির্দিষ্টভাবে নিম্নলিখিত চেকগুলি করে:
noImplicitAny: কোনো ভেরিয়েবল টাইপ অজানা থাকলে ত্রুটি দেখাবে।noImplicitThis:thisএর টাইপ চেক করবে।strictNullChecks:nullএবংundefinedএর মানের জন্য আরো কঠোর চেক প্রয়োগ করবে।
২.৪. outDir
এই অপশনটি কম্পাইল করা ফাইলগুলো কোথায় সংরক্ষণ করা হবে তা নির্ধারণ করে। সাধারণত এটি dist বা build নামক ডিরেক্টরিতে আউটপুট ফাইল সংরক্ষণ করে।
উদাহরণ:
"outDir": "./dist"
২.৫. esModuleInterop
এই অপশনটি পুরোনো CommonJS মডিউল এবং ES মডিউলগুলির মধ্যে পারস্পরিক সম্পর্ক সঠিকভাবে কাজ করার জন্য প্রয়োজনীয়। এটি সাধারণত ES মডিউলগুলোকে CommonJS স্টাইলের সাথে ইন্টিগ্রেট করতে ব্যবহৃত হয়।
উদাহরণ:
"esModuleInterop": true
২.৬. skipLibCheck
এই অপশনটি লাইব্রেরি ফাইলগুলির টাইপ চেকিং স্কিপ করতে ব্যবহৃত হয়। যদি আপনার কোডে বাইরের লাইব্রেরি বা টাইপ ডিফিনিশন থাকে, তবে এই অপশনটি তা স্কিপ করতে সাহায্য করবে।
উদাহরণ:
"skipLibCheck": true
২.৭. sourceMap
এই অপশনটি TypeScript কম্পাইল করা ফাইলগুলির সাথে .map ফাইল তৈরি করবে, যা ডিবাগিংয়ের জন্য খুবই উপকারী। .map ফাইলের মাধ্যমে আপনি সরাসরি TypeScript কোডে ব্রাউজারে ডিবাগ করতে পারবেন।
উদাহরণ:
"sourceMap": true
২.৮. noEmit
এই অপশনটি TypeScript কে শুধুমাত্র টাইপ চেক করতে বলে, কিন্তু JavaScript ফাইল বা .d.ts ফাইল তৈরি করে না। এটি বিশেষভাবে পরীক্ষণ বা শুধুমাত্র টাইপ চেকিং করার জন্য ব্যবহৃত হতে পারে।
উদাহরণ:
"noEmit": true
২.৯. allowJs
এই অপশনটি TypeScript কে JavaScript ফাইল কম্পাইল করতে অনুমতি দেয়। এটি একটি মিশ্র প্রজেক্টের জন্য উপকারী, যেখানে TypeScript এবং JavaScript ফাইল একসাথে কাজ করে।
উদাহরণ:
"allowJs": true
৩. টাইপস্ক্রিপ্ট কম্পাইলার অপশন ব্যবহার করার উদাহরণ
এখানে একটি tsconfig.json ফাইলের উদাহরণ দেয়া হলো যেখানে বিভিন্ন কম্পাইলার অপশন কনফিগার করা হয়েছে:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"outDir": "./dist",
"sourceMap": true,
"noEmit": false
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules"
]
}
এখানে:
- TypeScript কোডটি ES6 এ রূপান্তরিত হবে।
commonjsমডিউল সিস্টেম ব্যবহার করা হবে।- কঠোর টাইপ চেকিং সক্ষম করা হয়েছে (
strict: true)। - আউটপুট
distডিরেক্টরিতে সংরক্ষণ করা হবে।
৪. উপসংহার
TypeScript কম্পাইলার অপশনগুলি বিভিন্ন পদ্ধতিতে কনফিগার করা যায়, যা আপনার প্রকল্পের ধরন এবং প্রয়োজন অনুযায়ী উন্নত কাস্টমাইজেশন প্রদান করে। tsconfig.json ফাইলের মাধ্যমে আপনি TypeScript কোডের কম্পাইলেশন প্রক্রিয়া নিয়ন্ত্রণ করতে পারবেন, যা কোডের স্থিতিশীলতা, উন্নয়ন কার্যক্রম এবং ডিবাগিংকে আরো সহজ এবং কার্যকর করে তোলে।
Read more