TypeScript 6.0 मुद्दामहून बदल घडवून आणते
TypeScript 6.0 आले आहे आणि ते सर्व काही बदलून टाकते. हे व्हर्जन 2.x नंतरचे सर्वात मोठे परिवर्तन आहे. जर तुम्ही जुन्या (legacy) सेटिंग्जवर अवलंबून असाल, तर तुमचे पुढचे बिल्ड (build) फेल होण्याची शक्यता आहे.
तीन मोठे बदल तुमच्या कोडमध्ये त्रुटी निर्माण करू शकतात:
- Strict mode आता बाय डिफॉल्ट (by default) सुरू आहे.
- ES5 आणि ES3 सपोर्ट आता काढून टाकण्यात आला आहे.
- Module resolution आता बाय डिफॉल्ट ESNext आहे.
हे का महत्त्वाचे आहे:
Strict Mode पूर्वी, तुम्हाला strict mode साठी स्वतंत्रपणे opt in करावे लागायचे. आता, हे मानक (standard) आहे. सुमारे 70% कोडबेसमध्ये लगेच 'red builds' दिसू लागतील. तुम्हाला uninitialized properties, implicit any types आणि unchecked null values साठी एरर्स (errors) येतील.
ES5 Support Removal तुम्ही आता तुमच्या tsconfig.json मध्ये ES5 किंवा ES3 टार्गेट करू शकत नाही. नवीन डिफॉल्ट ES2025 आहे. जर तुम्हाला जुन्या ब्राउझर्सना सपोर्ट करायचा असेल, तर तुम्हाला तुमच्या पाइपलाइनमध्ये (pipeline) Babel सारखे वेगळे टूल जोडावे लागेल.
Module Resolution डिफॉल्ट आता CommonJS राहिलेले नाही. आता ते ESNext आहे. जर तुमचा Node.js प्रोजेक्ट implicit CommonJS बिहेवियरवर अवलंबून असेल, तर तुम्हाला तुमच्या कॉन्फिगमध्ये (config) module सेटिंग स्पष्टपणे (explicitly) सेट करावी लागेल.
तुमची पाइपलाइन न मोडता मायग्रेट (migrate) कसे करावे:
तुमच्या कॉन्फिगचे ऑडिट करा सेटिंग्ज योगायोगावर सोडू नका. अपग्रेड करण्यापूर्वी तुमच्या tsconfig.json मध्ये strict, target, आणि module साठी स्पष्ट व्हॅल्यूज (explicit values) जोडा.
तुमचे व्हर्जन लॉक करा तुमच्या package.json मध्ये तुमचे TypeScript व्हर्जन पिन (pin) करा. 6.0 वर जाण्यापूर्वी तुमच्या सध्याच्या व्हर्जनवर तुमचे सध्याचे बिल्ड तपासा.
फिचर ब्रांचचा वापर करा एका नवीन ब्रांचवर TypeScript 6.0 इन्स्टॉल करा. तुमचे target ES2025 वर अपडेट करा आणि तुमचा module type स्पष्टपणे सेट करा.
टप्प्याटप्प्याने टाइप्स (types) सुधारा सर्व एरर्स पाहण्यासाठी फाइल्स एमिट (emit) न करता कंपायलर चालवा. प्रथम strictNullChecks आणि implicit any एरर्सवर लक्ष केंद्रित करा.
सर्व काही तपासा तुमची संपूर्ण टेस्ट सुईट (test suite) चालवा. TypeScript टाइप एरर्स पकडते, परंतु नवीन स्ट्रिक्टनेसमुळे (strictness) निर्माण होणाऱ्या लॉजिक एरर्स तुमच्या टेस्ट्सद्वारे पकडल्या जातात.
TypeScript 6.0 हे व्हर्जन 7.0 च्या रीराईट (rewrite) पूर्वीचे शेवटचे पाऊल आहे. व्हर्जन 7.0 मध्ये Go-native कोअरचा वापर केला जाईल. याचा अर्थ असा की लेगसी सपोर्ट (legacy support) पूर्णपणे नाहीसा होईल.
नंतरच्या संकटापासून वाचण्यासाठी आताच तुमचा कोडबेस मॉडर्न (modernize) करा.
स्रोत: https://dev.to/davekurian/typescript-60-launches-strict-mode-by-default-and-drops-es5-support-n31