TypeScript ਜਿੱਤ ਗਿਆ। ਇਸ ਨਾਲ ਸਾਨੂੰ ਕੀ ਮਿਲਿਆ ਹੈ।
ਬਹਿਸ ਖਤਮ ਹੋ ਚੁੱਕੀ ਹੈ। ਜ਼ਿਆਦਾਤਰ ਨਵੇਂ frontend ਪ੍ਰੋਜੈਕਟਾਂ ਵਿੱਚ ਡਿਫੌਲਟ ਰੂਪ ਵਿੱਚ TypeScript ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਲੋਕ ਹੁਣ ਇਸ ਨੂੰ ਅਪਣਾਉਣ ਬਾਰੇ ਬਹਿਸ ਨਹੀਂ ਕਰਦੇ।
ਅਸਲੀ ਮੁੱਲ ਸਿਰਫ਼ ਟਾਈਪੋ (typos) ਫੜਨਾ ਹੀ ਨਹੀਂ ਹੈ। ਇਹ ਅਸਲ ਪ੍ਰਚਾਰ ਨਾਲੋਂ ਕਿਤੇ ਜ਼ਿਆਦਾ ਡੂੰਘਾ ਹੈ।
Types ਅਜਿਹੀ ਡਾਕੂਮੈਂਟੇਸ਼ਨ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ ਜੋ ਕਦੇ ਵੀ ਪੁਰਾਣੀ ਜਾਂ ਗਲਤ ਨਹੀਂ ਹੁੰਦੀ। ਇੱਕ function signature ਤੁਹਾਨੂੰ ਬਿਲਕੁਲ ਸਹੀ ਦੱਸਦਾ ਹੈ ਕਿ ਕੋਡ ਦੇ ਇੱਕ ਹਿੱਸੇ ਨੂੰ ਕਿਸ ਚੀਜ਼ ਦੀ ਲੋੜ ਹੈ ਅਤੇ ਇਹ ਕੀ return ਕਰਦਾ ਹੈ। ਜੇਕਰ ਕੋਈ ਡਿਵੈਲਪਰ ਕਿਸੇ union type ਵਿੱਚ ਨਵਾਂ ਵਿਕਲਪ ਜੋੜਦਾ ਹੈ, ਤਾਂ ਕੰਪਾਈਲਰ ਤੁਹਾਨੂੰ ਆਪਣੇ ਕੋਡ ਦੇ ਹਰ ਹਿੱਸੇ ਨੂੰ ਅਪਡੇਟ ਕਰਨ ਲਈ ਮਜਬੂਰ ਕਰਦਾ ਹੈ। Comments ਪੁਰਾਣੇ ਹੋ ਕੇ ਗਲਤ ਹੋ ਸਕਦੇ ਹਨ, ਪਰ Types ਨਹੀਂ।
Refactoring ਇੱਕ ਡਰਾਉਣਾ ਕੰਮ ਹੋਣ ਦੀ ਬਜਾਏ ਇੱਕ ਸੁਰੱਖਿਅਤ ਕੰਮ ਬਣ ਜਾਂਦਾ ਹੈ। Untyped ਕੋਡ ਵਿੱਚ, ਕਿਸੇ field ਦਾ ਨਾਮ ਬਦਲਣਾ ਇੱਕ ਜੂਏ ਵਾਂਗ ਮਹਿਸੂਸ ਹੁੰਦਾ ਹੈ। TypeScript ਵਿੱਚ, ਤੁਸੀਂ type ਬਦਲਦੇ ਹੋ ਅਤੇ ਕੰਪਾਈਲਰ ਤੁਹਾਨੂੰ ਹਰ ਟੁੱਟੀ ਹੋਈ ਲਾਈਨ ਦੀ ਸੂਚੀ ਦੇ ਦਿੰਦਾ ਹੈ। ਇਹ ਪੁਰਾਣੇ ਕੋਡ ਨੂੰ ਛੂਹਣ ਦੇ ਡਰ ਨੂੰ ਖਤਮ ਕਰ ਦਿੰਦਾ ਹੈ।
Types ਤੁਹਾਡੇ AI ਨਾਲ ਕੀਤੇ ਕੰਮ ਨੂੰ ਵੀ ਬਿਹਤਰ ਬਣਾਉਂਦੇ ਹਨ।
ਜਦੋਂ ਤੁਸੀਂ AI ਨੂੰ untyped JavaScript ਨੂੰ ਐਡਿਟ ਕਰਨ ਲਈ ਕਹਿੰਦੇ ਹੋ, ਤਾਂ ਇਹ ਢਾਂਚੇ (structure) ਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾਉਂਦਾ ਹੈ। ਇਹ ਅਜਿਹੀਆਂ ਗਲਤੀਆਂ ਕਰਦਾ ਹੈ ਜਿਸ ਨਾਲ production errors ਹੋ ਸਕਦੇ ਹਨ। TypeScript ਵਿੱਚ, type ਇੱਕ specification ਵਜੋਂ ਕੰਮ ਕਰਦਾ ਹੈ। AI ਨਿਯਮਾਂ ਨੂੰ ਜਾਣਦਾ ਹੈ। ਜੇਕਰ AI ਕੋਈ ਗਲਤੀ ਕਰਦਾ ਹੈ, ਤਾਂ ਕੰਪਾਈਲਰ ਇਸਨੂੰ ਤੁਰੰਤ ਫੜ ਲੈਂਦਾ ਹੈ। Types "plausible code" ਨੂੰ "proven code" ਵਿੱਚ ਬਦਲ ਦਿੰਦੇ ਹਨ।
Types ਤੁਹਾਨੂੰ ਹੌਲੀ ਨਹੀਂ ਕਰਦੇ। AI workflow ਵਿੱਚ, ਉਹ ਤੁਹਾਡੀ ਰਫ਼ਤਾਰ ਵਧਾਉਂਦੇ ਹਨ। ਉਹ guardrails ਵਜੋਂ ਕੰਮ ਕਰਦੇ ਹਨ ਤਾਂ ਜੋ ਤੁਸੀਂ ਹਰ ਲਾਈਨ ਨੂੰ ਮੈਨੂਅਲੀ ਚੈੱਕ ਕੀਤੇ ਬਿਨਾਂ ਜਨਰੇਟ ਕੀਤੇ ਕੋਡ 'ਤੇ ਭਰੋਸਾ ਕਰ ਸਕੋ।
ਆਪਣੇ types ਇਰਾਦੇ (intent) ਨਾਲ ਲਿਖੋ:
• ਕਈ booleans ਦੀ ਬਜਾਏ unions ਦੀ ਵਰਤੋਂ ਕਰੋ। "loading" | "error" | "ready" ਵਰਗਾ ਸਟੇਟਸ ਅਸੰਭਵ ਸਟੇਟਸ (impossible states) ਨੂੰ ਰੋਕਦਾ ਹੈ। • ਆਪਣੇ domain types ਨੂੰ ਨਾਮ ਦਿਓ। "type Cents = number" ਦੀ ਵਰਤੋਂ ਕਰਨ ਨਾਲ ਤੁਹਾਡਾ ਇਰਾਦਾ ਸਪਸ਼ਟ ਹੋ ਜਾਂਦਾ ਹੈ। • "any" ਤੋਂ ਬਚੋ। ਇਸ ਦੀ ਬਜਾਏ "unknown" ਦੀ ਵਰਤੋਂ ਕਰੋ ਅਤੇ ਆਪਣੇ types ਨੂੰ narrow ਕਰੋ। "any" ਤੁਹਾਡੇ ਸੇਫਟੀ ਨੈੱਟ (safety net) ਨੂੰ ਤਬਾਹ ਕਰ ਦਿੰਦਾ ਹੈ। • Inference ਨੂੰ ਕੰਮ ਕਰਨ ਦਿਓ। ਤੁਹਾਨੂੰ ਹਰ ਚੀਜ਼ ਨੂੰ ਲੇਬਲ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ। ਆਪਣੇ function signatures ਅਤੇ exported APIs ਨੂੰ ਲੇਬਲ ਕਰੋ, ਫਿਰ ਬਾਕੀ ਨੂੰ ਆਪਣੇ ਆਪ ਹੋਣ ਦਿਓ।
TypeScript ਨੇ codebases ਨੂੰ ਲਾਗੂ ਕੀਤੇ ਹੋਏ contracts ਦੇ ਸਮੂਹ ਵਿੱਚ ਬਦਲ ਦਿੱਤਾ ਹੈ। ਇਹ contracts ਨਿਰਭੈ refactoring ਅਤੇ ਭਰੋਸੇਯੋਗ AI ਸਹਾਇਤਾ ਨੂੰ ਸੰਭਵ ਬਣਾਉਂਦੇ ਹਨ।
ਅਸੀਂ ਬੱਗਸ (bugs) ਨੂੰ ਰੋਕਣ ਲਈ types ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਸ਼ੁਰੂ ਕੀਤੀ ਸੀ। ਅਸੀਂ ਇਹਨਾਂ ਦੀ ਵਰਤੋਂ ਇਸ ਲਈ ਕਰਦੇ ਰਹਿੰਦੇ ਹਾਂ ਕਿਉਂਕਿ ਇਹ ਬਾਕੀ ਸਭ ਕੁਝ ਲਈ ਨੀਂਹ ਹਨ।
ਸਰੋਤ: https://dev.to/parsajiravand/typescript-won-heres-what-that-actually-bought-us-12m8
