𝗧𝘆𝗽𝗲𝗦𝗰𝗿𝗶𝗽𝘁 𝟲.𝟬 രൂപകൽപ്പന ചെയ്തത് തന്നെ മാറ്റങ്ങൾ വരുത്താനാണ്

TypeScript 6.0 എത്തിക്കഴിഞ്ഞു, ഇത് എല്ലാം മാറ്റിമറിക്കുന്നു. പതിപ്പ് 2.x ന് ശേഷമുള്ള ഏറ്റവും വലിയ മാറ്റമാണിത്. നിങ്ങൾ പഴയ (legacy) സെറ്റിംഗുകളെ ആശ്രയിച്ചാണ് പ്രവർത്തിക്കുന്നതെങ്കിൽ, നിങ്ങളുടെ അടുത്ത ബിൽഡ് പരാജയപ്പെടാൻ സാധ്യതയുണ്ട്.

നിങ്ങളുടെ കോഡിനെ ബാധിക്കുന്ന മൂന്ന് പ്രധാന മാറ്റങ്ങൾ ഇവയാണ്:

എന്തുകൊണ്ടാണ് ഇത് പ്രധാനമാകുന്നത്:

Strict Mode മുമ്പ്, നിങ്ങൾക്ക് സന്നദ്ധത പ്രകടിപ്പിച്ചാൽ മാത്രമേ strict mode ഉപയോഗിക്കാൻ കഴിയുമായിരുന്നുള്ളൂ. എന്നാൽ ഇപ്പോൾ ഇത് ഒരു മാനദണ്ഡമാണ്. ഏകദേശം 70% കോഡ്ബേസുകളിലും ഉടൻ തന്നെ ബിൽഡ് എററുകൾ (red builds) കാണാൻ സാധ്യതയുണ്ട്. uninitialized properties, implicit any types, unchecked null values എന്നിവ കാരണം നിങ്ങൾക്ക് എററുകൾ നേരിടേണ്ടി വരും.

ES5 Support Removal നിങ്ങളുടെ tsconfig.json-ൽ ഇനി ES5 അല്ലെങ്കിൽ ES3 ടാർഗെറ്റ് ചെയ്യാൻ കഴിയില്ല. പുതിയ ഡിഫോൾട്ട് ES2025 ആണ്. പഴയ ബ്രൗസറുകളെ സപ്പോർട്ട് ചെയ്യണമെന്നുണ്ടെങ്കിൽ, Babel പോലുള്ള മറ്റൊരു ടൂൾ നിങ്ങളുടെ പൈപ്പ്‌ലൈനിൽ (pipeline) ചേർക്കേണ്ടി വരും.

Module Resolution ഡിഫോൾട്ട് ഇനി CommonJS അല്ല. അത് ഇപ്പോൾ ESNext ആണ്. നിങ്ങളുടെ Node.js പ്രോജക്റ്റ് implicit CommonJS രീതിയെ ആശ്രയിച്ചാണ് പ്രവർത്തിക്കുന്നതെങ്കിൽ, കോൺഫിഗറേഷനിൽ module സെറ്റിംഗ് കൃത്യമായി നൽകേണ്ടതുണ്ട്.

നിങ്ങളുടെ പൈപ്പ്‌ലൈൻ തകരാതെ എങ്ങനെ മൈഗ്രേറ്റ് ചെയ്യാം:

  1. Audit your config സെറ്റിംഗുകൾ ഭാഗ്യപരീക്ഷണത്തിന് വിടരുത്. അപ്‌ഗ്രേഡ് ചെയ്യുന്നതിന് മുമ്പ് നിങ്ങളുടെ tsconfig.json-ൽ strict, target, module എന്നിവയ്ക്കായി കൃത്യമായ വാല്യൂകൾ നൽകുക.

  2. Lock your version നിങ്ങളുടെ package.json-ൽ TypeScript വേർഷൻ കൃത്യമായി രേഖപ്പെടുത്തുക (pin). 6.0-ലേക്ക് മാറുന്നതിന് മുമ്പ് നിലവിലുള്ള വേർഷനിൽ നിങ്ങളുടെ നിലവിലെ ബിൽഡ് ടെസ്റ്റ് ചെയ്യുക.

  3. Use a feature branch ഒരു പുതിയ ബ്രാഞ്ചിൽ TypeScript 6.0 ഇൻസ്റ്റാൾ ചെയ്യുക. നിങ്ങളുടെ target ES2025 ആയി അപ്‌ഡേറ്റ് ചെയ്യുകയും module type വ്യക്തമായി സെറ്റ് ചെയ്യുകയും ചെയ്യുക.

  4. Fix types incrementally എല്ലാ എററുകളും കാണുന്നതിനായി ഫയലുകൾ എമിറ്റ് (emit) ചെയ്യാതെ കംപൈലർ റൺ ചെയ്യുക. ആദ്യം strictNullChecks, implicit any എററുകൾ എന്നിവയിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുക.

  5. Test everything നിങ്ങളുടെ മുഴുവൻ ടെസ്റ്റ് സ്യൂട്ടും (test suite) റൺ ചെയ്യുക. TypeScript ടൈപ്പ് എററുകൾ കണ്ടെത്തുമെങ്കിലും, പുതിയ സ്ട്രിക്റ്റ് രീതി മൂലം ഉണ്ടാകാൻ സാധ്യതയുള്ള ലോജിക് എററുകൾ നിങ്ങളുടെ ടെസ്റ്റുകൾ വഴിയാണ് കണ്ടെത്താൻ കഴിയുക.

പതിപ്പ് 7.0-ലേക്കുള്ള മാറ്റത്തിന് മുന്നോടിയായുള്ള അവസാന ഘട്ടമാണ് TypeScript 6.0. പതിപ്പ് 7.0 ഒരു Go-native കോർ ഉപയോഗിക്കും. ഇതിനർത്ഥം പഴയ (legacy) സപ്പോർട്ട് പൂർണ്ണമായും ഇല്ലാതാകും എന്നാണ്.

ഭാവിയിൽ പ്രതിസന്ധികൾ ഒഴിവാക്കാൻ നിങ്ങളുടെ കോഡ്ബേസ് ഇപ്പോൾ തന്നെ ആധുനികവൽക്കരിക്കുക.

Source: https://dev.to/davekurian/typescript-60-launches-strict-mode-by-default-and-drops-es5-support-n31