TypeScript 6.0 ਡਿਜ਼ਾਈਨ ਦੇ ਅਨੁਸਾਰ ਵੱਡੇ ਬਦਲਾਅ (Breaking Changes) ਲਿਆ ਰਿਹਾ ਹੈ

TypeScript 6.0 ਆ ਗਿਆ ਹੈ ਅਤੇ ਇਹ ਸਭ ਕੁਝ ਬਦਲ ਦਿੰਦਾ ਹੈ। ਇਹ ਰਿਲੀਜ਼ ਵਰਜ਼ਨ 2.x ਤੋਂ ਬਾਅਦ ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਨ ਤਬਦੀਲੀ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਪੁਰਾਣੀਆਂ (legacy) ਸੈਟਿੰਗਾਂ 'ਤੇ ਨਿਰਭਰ ਹੋ, ਤਾਂ ਤੁਹਾਡਾ ਅਗਲਾ ਬਿਲਡ (build) ਅਸਫਲ ਹੋ ਸਕਦਾ ਹੈ।

ਤਿੰਨ ਵੱਡੇ ਬਦਲਾਅ ਤੁਹਾਡੇ ਕੋਡ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰਨਗੇ:

ਇਹ ਕਿਉਂ ਮਹੱਤਵਪੂਰਨ ਹੈ:

Strict Mode ਪਹਿਲਾਂ, ਤੁਹਾਨੂੰ strict mode ਲਈ ਆਪਤ (opt in) ਕਰਨਾ ਪੈਂਦਾ ਸੀ। ਹੁਣ, ਇਹ ਇੱਕ ਮਿਆਰ (standard) ਹੈ। ਲਗਭਗ 70% codebase ਵਿੱਚ ਤੁਰੰਤ red builds ਦਿਖਾਈ ਦੇਣਗੇ। ਤੁਹਾਨੂੰ uninitialized properties, implicit any types, ਅਤੇ unchecked null values ਲਈ errors ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਪਵੇਗਾ।

ES5 Support Removal ਤੁਸੀਂ ਹੁਣ ਆਪਣੇ tsconfig.json ਵਿੱਚ ES5 ਜਾਂ ES3 ਨੂੰ target ਨਹੀਂ ਕਰ ਸਕਦੇ। ਨਵਾਂ ਡਿਫੌਲਟ ES2025 ਹੈ। ਜੇਕਰ ਤੁਹਾਨੂੰ ਪੁਰਾਣੇ ਬ੍ਰਾਊਜ਼ਰਾਂ ਨੂੰ ਸਪੋਰਟ ਕਰਨ ਦੀ ਲੋੜ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ ਆਪਣੇ pipeline ਵਿੱਚ Babel ਵਰਗਾ ਕੋਈ ਵੱਖਰਾ ਟੂਲ ਜੋੜਨਾ ਪਵੇਗਾ।

Module Resolution ਡਿਫੌਲਟ ਹੁਣ CommonJS ਨਹੀਂ ਰਿਹਾ। ਇਹ ਹੁਣ ESNext ਹੈ। ਜੇਕਰ ਤੁਹਾਡਾ Node.js ਪ੍ਰੋਜੈਕਟ implicit CommonJS ਵਿਵਹਾਰ 'ਤੇ ਨਿਰਭਰ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ ਆਪਣੀ config ਵਿੱਚ module ਸੈਟਿੰਗ ਨੂੰ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਸੈੱਟ ਕਰਨਾ ਪਵੇਗਾ।

ਆਪਣੇ pipeline ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕੀਤੇ ਬਿਨਾਂ ਮਾਈਗ੍ਰੇਟ ਕਿਵੇਂ ਕਰੀਏ:

  1. Audit your config ਸੈਟਿੰਗਾਂ ਨੂੰ ਇਤਫ਼ਾਕ 'ਤੇ ਨਾ ਛੱਡੋ। ਅੱਪਗ੍ਰੇਡ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਆਪਣੇ tsconfig.json ਵਿੱਚ strict, target, ਅਤੇ module ਲਈ ਸਪੱਸ਼ਟ ਮੁੱਲ (explicit values) ਜੋੜੋ।

  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 ਕੀਤੇ ਬਿਨਾਂ compiler ਚਲਾਓ। ਪਹਿਲਾਂ strictNullChecks ਅਤੇ implicit any errors 'ਤੇ ਧਿਆਨ ਦਿਓ।

  5. Test everything ਆਪਣਾ ਪੂਰਾ test suite ਚਲਾਓ। TypeScript type errors ਨੂੰ ਫੜਦਾ ਹੈ, ਪਰ ਤੁਹਾਡੇ ਟੈਸਟ ਨਵੀਂ ਸਖ਼ਤੀ (strictness) ਕਾਰਨ ਹੋਣ ਵਾਲੀਆਂ logic errors ਨੂੰ ਫੜਦੇ ਹਨ।

TypeScript 6.0 ਵਰਜ਼ਨ 7.0 ਦੇ ਰੀ-ਰਾਈਟ (rewrite) ਤੋਂ ਪਹਿਲਾਂ ਆਖਰੀ ਕਦਮ ਹੈ। ਵਰਜ਼ਨ 7.0 ਇੱਕ Go-native core ਦੀ ਵਰਤੋਂ ਕਰੇਗਾ। ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ legacy support ਪੂਰੀ ਤਰ੍ਹਾਂ ਖਤਮ ਹੋ ਜਾਵੇਗਾ।

ਬਾਅਦ ਵਿੱਚ ਸੰਕਟ ਤੋਂ ਬਚਣ ਲਈ ਹੁਣੇ ਆਪਣੇ codebase ਨੂੰ ਆਧੁਨਿਕ ਬਣਾਓ।

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