پیشنهاد شده است که یک نحو با اطلاعات نوع به زبان جاوا اسکریپت اضافه شود

مایکروسافت، ایگالیا و بلومبرگ ابتکار عمل را برای گنجاندن نحو در مشخصات جاوا اسکریپت برای تعاریف نوع صریح، مشابه نحوی که در زبان TypeScript استفاده می‌شود، انجام داده‌اند. در حال حاضر، تغییرات نمونه اولیه پیشنهاد شده برای گنجاندن در استاندارد ECMAScript برای بحث های اولیه ارائه شده است (مرحله 0). در جلسه بعدی کمیته TC39 در ماه مارس، قرار است با مشارکت جامعه متخصص از ECMA به مرحله اول بررسی پیشنهاد حرکت کند.

داشتن اطلاعات نوع مشخص شده به شما این امکان را می دهد که از بسیاری از خطاها در طول فرآیند توسعه جلوگیری کنید، استفاده از تکنیک های بهینه سازی اضافی را ممکن می کند، اشکال زدایی را ساده می کند و کد را خواناتر و برای اصلاح و پشتیبانی توسط توسعه دهندگان شخص ثالث آسان تر می کند. پشتیبانی از نوع پیشنهاد شده است که به عنوان یک ویژگی اختیاری پیاده‌سازی شود - موتورهای جاوا اسکریپت و زمان‌های اجرا که از بررسی نوع پشتیبانی نمی‌کنند، حاشیه‌نویسی با اطلاعات نوع را نادیده می‌گیرند و کد را مانند قبل پردازش می‌کنند و داده‌های نوع را به عنوان نظرات در نظر می‌گیرند. اما ابزارهای بررسی نوع قادر خواهند بود از اطلاعات موجود برای شناسایی خطاهای مرتبط با استفاده نادرست از انواع استفاده کنند.

علاوه بر این، برخلاف اطلاعات نوع مشخص شده با استفاده از حاشیه نویسی JSDoc مشخص شده در قالب نظرات، نشان دادن مستقیم انواع به طور مستقیم در ساختارهای تعریف متغیر، کد را بصری تر، قابل فهم تر و ویرایش آسان تر می کند. به عنوان مثال، IDE هایی با پشتیبانی از TypeScript می توانند بلافاصله خطاهای کد جاوا اسکریپت تایپ شده را بدون تبدیل اضافی برجسته کنند. علاوه بر این، پشتیبانی از نوع داخلی امکان اجرای برنامه های نوشته شده به گویش های تایپ شده جاوا اسکریپت، مانند TypeScript و Flow را بدون انتقال از یک زبان به زبان دیگر، ممکن می سازد.

پیشنهاد شده است که یک نحو با اطلاعات نوع به زبان جاوا اسکریپت اضافه شود

در میان انواع، پیشنهاد شده است که "رشته"، "عدد" و "بولی" را اضافه کنید، که می تواند هنگام تعریف متغیرها، پارامترهای تابع، عناصر شی، فیلدهای کلاس، آرایه های تایپ شده ("عدد[]") استفاده شود. همچنین پیشنهاد شده است که از انواع ادغام شده («رشته | شماره») و ژنریک پشتیبانی شود. اجازه دهید x: رشته; تابع add(a: number, b: number) { return a + b; } Interface Person { name: string; سن: تعداد } تابع foo (x: T) { بازگشت x; } تابع foo(x: رشته | شماره): رشته | عدد { if (نوع x === عدد) { بازگشت x + 1 } else { بازگشت x + "!" } }

منبع: opennet.ru

اضافه کردن نظر