Der er foreslået tilføjelse af syntaks til typesikkerhed i JavaScript

Virksomhederne Microsoft, Igalia og Bloomberg har lanceret et initiativ om at inkludere syntaks til eksplicit typebestemmelse i JavaScript-specifikationen, lignende den syntaks, der anvendes i TypeScript. Den nuværende prototype af ændringerne, der foreslås til inkludering i ECMAScript-standarder, er blevet sendt til forhåndsdiskussioner (Stage 0). På det kommende møde i TC39-komiteen i marts planlægges det at gå videre til den første fase af forslagsbehandlingen med inddragelse af ekspertmiljøet fra ECMA.

At have eksplicit angivet typeinformation vil forhindre mange fejl i udviklingsprocessen, muliggøre brugen af yderligere optimeringsteknikker, forenkle fejlfinding og gøre koden mere læsbar og nemmere at redigere og vedligeholde af eksterne udviklere. Understøttelse af typer foreslås at blive implementeret som en valgfri funktion - JavaScript-motorer og runtime-miljøer, der ikke understøtter typekontrol, vil ignorere typeannotations og behandle koden som tidligere, idet de opfatter typeinformation som kommentarer. Men værktøjer til typekontrol vil kunne identificere fejl relateret til forkert brug af typer baseret på den tilgængelige information.

I modsætning til typeinformation, der gives via JSDoc-annoteringer angivet som kommentarer, vil direkte angivelse af typer i variabledeklæringskonstruktionerne gøre koden mere overskuelig, forståelig og nemmere at redigere. For eksempel vil integrerede udviklingsmiljøer med TypeScript-understøttelse straks kunne fremhæve fejl i typet JavaScript-kode uden yderligere transformationer. Desuden vil den indbyggede typeunderstøttelse gøre det muligt at køre programmer skrevet i typede JavaScript-dialekter, såsom TypeScript og Flow, uden transpilation fra ét sprog til et andet.

Der er foreslået tilføjelse af syntaks til typesikkerhed i JavaScript

Из типов предлагается добавить «string», «number» и «boolean», которые можно будет использовать при определении переменных, параметров функций, элементов объектов, полей классов, типизированных массивов («number[]»). Предлагается также обеспечить поддержку объединённых типов («string | number») и дженериков. let x: string; function add(a: number, b: number) { return a + b; } interface Person { name: string; age: number; } function foo<T>(x: T) { return x; } function foo(x: string | number): string | number { if (typeof x === number) { return x + 1 } else { return x + «!» } }

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster