TypeScript 6.0 வந்துவிட்டது
TypeScript 6.0 ஒரு முக்கிய மைல்கல். இது JavaScript codebase-ஐ அடிப்படையாகக் கொண்டு உருவாக்கப்பட்ட இறுதி பதிப்பாகும். அடுத்த பதிப்பான 7.0, Go-அடிப்படையிலான compiler-க்கு மாறும்.
இந்த மாற்றம் உங்கள் திட்டத்திற்கு (project) முக்கியமானது. நீங்கள் மேம்படுத்த (upgrade) அதிக காலம் காத்திருந்தால், அடுத்தடுத்து இரண்டு மாற்றங்களை (migrations) எதிர்கொள்ள வேண்டியிருக்கும்.
நீங்கள் பயன்படுத்த வேண்டிய புதிய அம்சங்கள்
• using keyword: இது database connections அல்லது file handles போன்ற வளங்களை (resources) நிர்வகிக்கிறது. இது நினைவகத்தை (memory) தானாகவே சுத்தம் செய்கிறது. கசிவுகளைத் (leaks) தடுக்க இனி உங்களுக்குத் தனி finally blocks தேவையில்லை.
• சிறந்த method inference: fluent APIs-களுக்கு நீங்கள் வெளிப்படையான type annotations எழுதுவதை நிறுத்தலாம். TypeScript இப்போது உங்களுக்காக சூழலை (context) கவனித்துக் கொள்ளும்.
• Variadic tuple மேம்பாடுகள்: இப்போது ஒரு tuple-இல் எந்த இடத்திலும் வகைகளை (types) spread செய்ய முடியும். இது சிக்கலான function patterns-களை எழுதுவதை எளிதாக்குகிறது.
செயல்திறன் மேம்பாடுகள்
புதிய பதிப்பு வேகமானது. பெரிய திட்டங்களில் (projects) rebuild வேகம் 40% வரை அதிகரித்துள்ளது. compiler இப்போது புத்திசாலித்தனமான dependency tracking முறையைப் பயன்படுத்துகிறது. ஒரு function body மாறும்போது மட்டுமல்லாமல், அதன் signature மாறும்போது மட்டுமே இது மறுதொகுப்பு (recompile) செய்யும்.
கவனிக்க வேண்டிய மாற்றங்கள் (Breaking Changes)
• Namespace merging: classes உடன் namespaces-களை இணைக்கும்போது, நீங்கள் வெளிப்படையான (explicit) exports-களைப் பயன்படுத்த வேண்டும்.
• கடுமையான index signatures: இனி ஒரு object-இல் உள்ள ஏதேனும் ஒரு property-ஐ நீங்கள் நேரடியாக அணுக முடியாது. ஒரு property இல்லை என்று தெரியாத நிலையில், அது இருப்பதாகக் கருதுவதால் ஏற்படும் பிழைகளை (bugs) இது தடுக்கிறது.
• Strict mode defaults: noUncheckedIndexedAccess flag இப்போது இயல்பாகவே (by default) ஆன் செய்யப்பட்டுள்ளது. array elements null அல்லது undefined-ஆக இருக்கிறதா என்பதை நீங்கள் சரிபார்க்க வேண்டும்.
மாற்றத்திற்கான உத்தி (Migration Strategy)
அதிக பிழைகளைக் கண்டால் பதற்றமடைய வேண்டாம். இந்த வழிமுறைகளைப் பின்பற்றவும்:
- முதலில் அனைத்து பிழைகளையும் காண
noEmitflag உடன் compiler-ஐ இயக்கவும். - index signatures மற்றும் null checks-களைத் தானாகவே சரிசெய்ய அதிகாரப்பூர்வ codemods-களைப் பயன்படுத்தவும்.
- namespace சிக்கல்களைக் கைமுறையாக (manually) சரிசெய்யவும்.
- உங்கள்
node_modules-ஐச் சரிபார்க்கவும். சில libraries இன்னும் 6.0-ஐ ஆதரிக்காமல் இருக்கலாம்.
7.0-இல் Go compiler-க்கு மாறுவது 10 மடங்கு வேகமான type checking-ஐ வழங்கும். உங்கள் codebase-ஐ எதிர்காலத்திற்குத் தயார்படுத்த இப்போதே 6.0-க்கு மாறத் தொடங்குங்கள்.