Microsoft, Igalia и Bloomberg Това обявиха преди няколко дни са поели инициативата да включат синтаксис за изричното определение на типа в спецификацията JavaScript, подобен на синтаксиса, използван в езика TypeScript.
В момента промените в прототипа, предложени за включване в стандарта ECMAScript, са представени за предварителни обсъждания (Етап 0).
Днес имаме удоволствието да обявим нашата подкрепа и сътрудничество по ново предложение за етап 0 за въвеждане на незадължителен и изтриваем синтаксис на тип в JavaScript. Тъй като този нов синтаксис няма да промени начина, по който се изпълнява заобикалящият код, те ефективно ще действат като коментари. Смятаме, че това има потенциал да направи TypeScript по-лесен и по-бърз за използване за разработка във всички мащаби. Бихме искали да поговорим защо се стремим към това и как това предложение работи на високо ниво.
Споменава се, че при тНаличието на изрична информация за типа ще предотврати много грешки в процеса на разработка, ще предостави възможност за използване на допълнителни техники за оптимизация, ще опрости отстраняването на грешки и ще направи кода по-четлив и по-лесен за модифициране и поддържане от разработчици на трети страни.
Освен, че предлага се да се реализира поддръжка на типове като незадължителна функция: Механизмите на JavaScript и времето за изпълнение, които не поддържат проверка на типа, ще игнорират поясненията с информация за типа и ще обработват кода както преди, възприемайки данните за типа като коментари. Но инструментите за проверка на типа ще могат, въз основа на наличната информация, да откриват грешки, свързани с неправилно използване на типове.
Фон
Скорошна тенденция, която нашият екип видя в света на JavaScript, е търсенето на по-бързо време за итерация и намалени стъпки за изграждане. С други думи, „направете го по-бързо и по-лесно“.В известен смисъл това вече се случва. Благодарение на успеха на вечнозелените браузъри, разработчиците често могат да избягват компилирането на по-нови версии на JavaScript, за да работят на по-стари времена за изпълнение. До известна степен същото важи и за групирането: повечето браузъри имат вградена поддръжка за използване на модули, така че групирането може да се разглежда като по-скоро стъпка за оптимизация, отколкото необходимост. Това става все по-често, така че как издържа TypeScript?
В същото време, за разлика от информацията за посочения тип чрез JSDoc анотации, посочени като коментари, директната спецификация от типове директно в конструкции за дефиниция на променлива това ще направи кода по-визуален, разбираем и по-лесен за редактиране.
Например, IDE с активиран TypeScript ще могат незабавно да подчертават грешките в писмения JavaScript код без допълнителни трансформации. Освен това, вградената поддръжка на типове ще направи възможно стартирането на програми, написани на скриптирани JavaScript диалекти като TypeScript и Flow, без да се транспилират от един език на друг.
От типовете се предлага добавяне на "string", "number" и "boolean", които могат да се използват при дефиниране на променливи, параметри на функции, елементи на обект, полета на клас, въведени масиви ("number[]"). Предлага се също така да се осигури поддръжка за смесени типове („низ | число“) и генерични.
Предвид всичко това, ние планираме да представим това предложение за Етап 1 на следващата пленарна среща на TC2022 през март 39 г. Ще направим това с подкрепата и напътствията на нашите съшампиони по това предложение, Роб Палмър от Bloomberg и Ромуло Синтра от Igalia.
Достигането на Етап 1 би означавало, че комитетът по стандартите смята, че си струва да се обмисли съвместимият тип синтаксис за ECMAScript. Това не е сигурно нещо: има много ценни гледни точки в рамките на комисията и ние очакваме известна доза скептицизъм. Предложение като това ще получи много коментари и подходящо разглеждане. Това може да включва много промени в дизайна по пътя и може да отнеме години, за да получите резултати.
на следващата среща от март на комисия TC39 се планира преминаването към първия етап разглеждане на предложението с участието на експертната общност на ECMA.
Накрая Ако се интересувате да научите повече за това, можете да проверите подробностите в следваща връзка.