TypeScript جیت گیا۔ یہاں وہ ہے جو ہمیں اس سے حاصل ہوا۔
بحث ختم ہو چکی ہے۔ ڈویلپرز اب TypeScript کے استعمال پر بحث نہیں کرتے۔ نئے فرنٹ اینڈ (frontend) پروجیکٹس میں اسے ڈیفالٹ کے طور پر استعمال کیا جاتا ہے۔
اصل مقصد ٹائپنگ کی غلطیوں (typos) کو پکڑنا تھا تاکہ وہ آپ کی ایپ کو کریش نہ کریں۔ لیکن اصل فائدہ یہ نہیں ہے۔ اصل اہمیت کسی بہت گہری چیز میں چھپی ہے۔
TypeScript ایسی دستاویز سازی (documentation) تیار کرتا ہے جو کبھی پرانی یا غیر متعلقہ نہیں ہوتی۔ ایک فنکشن سگنیچر (function signature) آپ کو بالکل درست بتاتا ہے کہ ایک فنکشن کو کس چیز کی ضرورت ہے اور وہ کیا واپس (return) کرتا ہے۔ اگر آپ کسی ٹائپ میں نیا آپشن شامل کرتے ہیں، تو کمپائلر (compiler) آپ کو وہ تمام جگہیں دکھاتا ہے جہاں آپ کو اپنا کوڈ اپ ڈیٹ کرنے کی ضرورت ہے۔ ایک کمنٹ (comment) تو بس وہیں پڑا رہے گا اور آپ کو غلط معلومات دے گا۔
ریفیکٹورنگ (Refactoring) محفوظ ہو جاتی ہے۔ بغیر ٹائپ والے کوڈ میں، کسی فیلڈ کا نام تبدیل کرنا جوئے کے برابر محسوس ہوتا ہے۔ آپ اسٹرنگز (strings) تلاش کرتے ہیں اور بہتر کی امید کرتے ہیں۔ TypeScript میں، آپ ٹائپ تبدیل کرتے ہیں اور کمپائل器 آپ کو ہر خراب لائن کی ایک فہرست (to-do list) فراہم کر دیتا ہے۔ آپ اپنے کوڈ بیس (codebase) سے ڈرنا چھوڑ دیتے ہیں۔
ٹائپس آپ کو AI استعمال کرنے میں بھی مدد دیتے ہیں۔
JavaScript میں کوڈ کا اندازہ لگانے والا AI ٹول خطرناک ہوتا ہے۔ یہ ایسی غلطیاں کرتا ہے جن سے پروڈکشن (production) میں ایررز آتے ہیں۔ TypeScript میں، ٹائپ ایک سپیسیفیکیشن (spec) کے طور پر کام کرتی ہے۔ AI جانتا ہے کہ کیا جائز ہے۔ اگر AI کوئی غلطی کرتا ہے، تو کمپائلر اسے فوراً پکڑ لیتا ہے۔ ٹائپس "ممکنہ کوڈ" (plausible code) کو "درست کوڈ" (correct code) میں بدل دیتی ہیں۔
لوگ کہا کرتے تھے کہ ٹائپس آپ کی رفتار کم کر دیتی ہیں۔ AI کی دنیا میں، ٹائپس آپ کی رفتار بڑھاتی ہیں۔ یہ حفاظتی رکاوٹوں (guardrails) کے طور پر کام کرتی ہیں۔ آپ ہر لائن کو خود چیک کرنے کے بجائے، تیار شدہ (generated) کوڈ کو اعتماد کے ساتھ قبول کر سکتے ہیں۔
ان اصولوں کے ساتھ بہتر ٹائپس لکھیں:
- متعدد بولینز (booleans) کے بجائے یونینز (unions) کا استعمال کریں۔ "loading" | "error" | "ready" جیسا اسٹیٹس ناممکن حالات (impossible states) سے بچاتا ہے۔
- اپنی ڈومین ٹائپس (domain types) کو نام دیں۔ "type Cents = number" کا استعمال آپ کے مقصد کو واضح کرتا ہے۔
- "any" سے بچیں۔ اس کے بجائے "unknown" کا استعمال کریں اور اسے محدود (narrow down) کریں۔ "any" آپ کے حفاظتی جال (safety net) کو توڑ دیتا ہے۔
- انفرنس (inference) کو اپنا کام کرنے دیں۔ آپ کو ہر چیز پر لیبل لگانے کی ضرورت نہیں ہے۔ اپنے فنکشن سگنیچرز اور ایکسپورٹڈ APIs کو لیبل کریں، پھر باقی کام خودکار طریقے سے ہونے دیں۔
TypeScript نے صرف ٹائپنگ کی غلطیوں کو ہی نہیں پکڑا، بلکہ اس نے کوڈ بیسز کو نافذ شدہ معاہدوں (enforced contracts) کے نظام میں بدل دیا۔ یہ معاہدے بے خوف ریفیکٹورنگ اور قابل اعتماد AI ٹولز کو ممکن بناتے ہیں۔
ہم نے بگ (bugs) روکنے کے لیے ٹائپس کا استعمال شروع کیا تھا۔ ہم انہیں اس لیے استعمال کرتے رہتے ہیں کیونکہ وہ باقی سب چیزوں کی بنیاد ہیں۔
Source: https://dev.to/parsajiravand/typescript-won-heres-what-that-actually-bought-us-53lo
