جاوا اسکرپٹ کی زبان میں قسم کی معلومات کے ساتھ نحو کو شامل کرنے کی تجویز ہے۔

مائیکروسافٹ، ایگالیا، اور بلومبرگ نے واضح قسم کی تعریفوں کے لیے جاوا اسکرپٹ کی تصریح میں نحو کو شامل کرنے کے لیے پہل کی ہے، جیسا کہ ٹائپ اسکرپٹ زبان میں استعمال ہونے والے نحو کی طرح ہے۔ فی الحال، ECMAScript معیار میں شامل کرنے کے لیے تجویز کردہ پروٹو ٹائپ تبدیلیاں ابتدائی بات چیت (مرحلہ 0) کے لیے جمع کرائی گئی ہیں۔ مارچ میں TC39 کمیٹی کی اگلی میٹنگ میں، ECMA کی ماہر برادری کی شمولیت کے ساتھ تجویز پر غور کے پہلے مرحلے پر جانے کا منصوبہ ہے۔

واضح طور پر مخصوص قسم کی معلومات کا ہونا آپ کو ترقی کے عمل کے دوران بہت سی غلطیوں سے بچنے، اضافی اصلاح کی تکنیکوں کا استعمال، ڈیبگنگ کو آسان بنانے، اور فریق ثالث کے ڈویلپرز کی طرف سے ترمیم اور مدد کے لیے کوڈ کو مزید پڑھنے کے قابل اور آسان بنانے کی اجازت دے گا۔ ٹائپ سپورٹ کو ایک اختیاری فیچر کے طور پر لاگو کرنے کی تجویز ہے - جاوا اسکرپٹ انجن اور رن ٹائم جو ٹائپ چیکنگ کو سپورٹ نہیں کرتے ہیں وہ ٹائپ انفارمیشن کے ساتھ تشریحات کو نظر انداز کر دیں گے اور کوڈ کو پہلے کی طرح پروسیس کریں گے، ٹائپ ڈیٹا کو تبصرے کے طور پر دیکھیں گے۔ لیکن ٹائپ چیکنگ ٹولز دستیاب معلومات کو استعمال کر سکیں گے تاکہ اقسام کے غلط استعمال سے منسلک غلطیوں کی نشاندہی کی جا سکے۔

مزید برآں، تبصروں کی شکل میں مخصوص کردہ JSDoc تشریحات کا استعمال کرتے ہوئے مخصوص کردہ معلومات کے برعکس، متغیر ڈیفینیشن کنسٹرکٹس میں براہ راست قسموں کا براہ راست اشارہ کوڈ کو مزید بصری، قابل فہم اور ترمیم کرنے میں آسان بنا دے گا۔ مثال کے طور پر، TypeScript سپورٹ کے ساتھ IDEs بغیر اضافی تبدیلیوں کے ٹائپ کردہ JavaScript کوڈ میں غلطیوں کو فوری طور پر اجاگر کرنے کے قابل ہو جائیں گے۔ اس کے علاوہ، بلٹ ان ٹائپ سپورٹ ایک زبان سے دوسری زبان میں منتقل کیے بغیر، ٹائپ کردہ جاوا اسکرپٹ بولیوں جیسے ٹائپ اسکرپٹ اور فلو میں لکھے گئے پروگراموں کو چلانا ممکن بنائے گی۔

جاوا اسکرپٹ کی زبان میں قسم کی معلومات کے ساتھ نحو کو شامل کرنے کی تجویز ہے۔

قسموں میں، "سٹرنگ"، "نمبر" اور "بولین" کو شامل کرنے کی تجویز ہے، جو متغیرات، فنکشن پیرامیٹرز، آبجیکٹ عناصر، کلاس فیلڈز، ٹائپ کردہ ارے ("نمبر[]") کی وضاحت کرتے وقت استعمال کی جا سکتی ہیں۔ ضم شدہ اقسام ("سٹرنگ | نمبر") اور جنرک کے لیے بھی تعاون فراہم کرنے کی تجویز ہے۔ let x: string; فنکشن ایڈ (a: نمبر، b: نمبر) { واپسی a + b؛ } انٹرفیس شخص { نام: سٹرنگ؛ عمر: نمبر؛ } فنکشن foo (x: T) { واپسی x; } فنکشن foo(x: string | number): string | نمبر { اگر (x === نمبر کی قسم) { واپس کریں x + 1 } ورنہ { واپس کریں x + "!" } }

ماخذ: opennet.ru

نیا تبصرہ شامل کریں