TypeScript 6.0 ডিজাইনগতভাবেই সবকিছু বদলে দিচ্ছে
TypeScript 6.0 চলে এসেছে এবং এটি সবকিছু বদলে দিচ্ছে। ২.x ভার্সনের পর এটিই সবচেয়ে উল্লেখযোগ্য পরিবর্তন। আপনি যদি legacy সেটিংসের ওপর নির্ভর করেন, তবে আপনার পরবর্তী বিল্ডটি সম্ভবত ব্যর্থ হবে।
তিনটি বড় পরিবর্তন আপনার কোডকে অচল করে দিতে পারে:
- Strict mode এখন ডিফল্টভাবে চালু থাকবে।
- ES5 এবং ES3 সাপোর্ট আর থাকছে না।
- Module resolution এখন ডিফল্টভাবে ESNext হবে।
কেন এটি গুরুত্বপূর্ণ:
Strict Mode আগে আপনাকে ম্যানুয়ালি strict mode চালু করতে হতো। এখন এটিই স্ট্যান্ডার্ড। প্রায় ৭০% কোডবেসে সাথে সাথে 'red builds' দেখা দেবে। আপনি uninitialized properties, implicit any types, এবং unchecked null values-এর জন্য এরর বা ত্রুটির সম্মুখীন হবেন।
ES5 Support Removal আপনি এখন আর আপনার tsconfig.json-এ ES5 বা ES3 টার্গেট করতে পারবেন না। নতুন ডিফল্ট হলো ES2025। যদি আপনার পুরনো ব্রাউজার সাপোর্ট করার প্রয়োজন হয়, তবে আপনাকে আপনার পাইপলাইনে Babel-এর মতো আলাদা একটি টুল যোগ করতে হবে।
Module Resolution ডিফল্ট হিসেবে এখন আর CommonJS থাকছে না। এটি এখন ESNext। যদি আপনার Node.js প্রজেক্টটি implicit CommonJS আচরণের ওপর নির্ভর করে, তবে আপনাকে আপনার কনফিগারেশনে module setting-টি স্পষ্টভাবে (explicitly) সেট করতে হবে।
আপনার পাইপলাইন ভেঙে না ফেলে কীভাবে মাইগ্রেট করবেন:
আপনার কনফিগ অডিট করুন সেটিংসকে ভাগ্যের ওপর ছেড়ে দেবেন না। আপগ্রেড করার আগে আপনার tsconfig.json-এ strict, target, এবং module-এর জন্য স্পষ্ট মান (explicit values) যোগ করুন।
আপনার ভার্সন লক করুন আপনার package.json-এ TypeScript ভার্সনটি পিন (pin) করে রাখুন। ৬.০-তে যাওয়ার আগে আপনার বর্তমান ভার্সনে বর্তমান বিল্ডটি পরীক্ষা করে নিন।
একটি ফিচার ব্রাঞ্চ ব্যবহার করুন একটি নতুন ব্রাঞ্চে TypeScript 6.0 ইনস্টল করুন। আপনার target-কে ES2025-এ আপডেট করুন এবং module type স্পষ্টভাবে সেট করুন।
ধাপে ধাপে টাইপ ঠিক করুন সব এরর দেখার জন্য ফাইল এমিট (emit) না করে কম্পাইলারটি চালান। প্রথমে strictNullChecks এবং implicit any এররগুলোর দিকে মনোযোগ দিন।
সবকিছু পরীক্ষা করুন আপনার সম্পূর্ণ টেস্ট স্যুট চালান। TypeScript টাইপ এরর শনাক্ত করে, কিন্তু আপনার টেস্টগুলো নতুন কঠোরতার (strictness) কারণে সৃষ্ট লজিক এরর শনাক্ত করবে।
TypeScript 6.0 হলো ভার্সন 7.0 রিরাইট করার আগের শেষ ধাপ। ভার্সন 7.0 একটি Go-native কোর ব্যবহার করবে। এর মানে হলো legacy সাপোর্ট পুরোপুরি চলে যাবে।
পরবর্তীতে সংকট এড়াতে এখনই আপনার কোডবেসকে আধুনিকায়ন করুন।
উৎস: https://dev.to/davekurian/typescript-60-launches-strict-mode-by-default-and-drops-es5-support-n31