Det foreslås at tilføje en syntaks med typeoplysninger til JavaScript-sproget

Microsoft, Igalia og Bloomberg har taget initiativ til at inkludere syntaks i JavaScript-specifikationen for eksplicitte typedefinitioner, svarende til den syntaks, der bruges i TypeScript-sproget. I øjeblikket er de prototypeændringer, der foreslås til inklusion i ECMAScript-standarden, indsendt til indledende diskussioner (stadie 0). På det næste møde i TC39-udvalget i marts er det planlagt at gå til første fase af behandlingen af ​​forslaget med inddragelse af ekspertmiljøet fra ECMA.

At have eksplicit specificeret typeinformation vil give dig mulighed for at undgå mange fejl under udviklingsprocessen, gøre det muligt at bruge yderligere optimeringsteknikker, forenkle fejlfinding og gøre koden mere læsbar og lettere for modifikation og support af tredjepartsudviklere. Typeunderstøttelse foreslås implementeret som en valgfri funktion - JavaScript-motorer og kørselstider, der ikke understøtter typekontrol, ignorerer annoteringer med typeoplysninger og behandler koden som før, og behandler typedata som kommentarer. Men typekontrolværktøjer vil være i stand til at bruge de tilgængelige oplysninger til at identificere fejl forbundet med forkert brug af typer.

Desuden, i modsætning til typeinformation specificeret ved hjælp af JSDoc-annoteringer specificeret i form af kommentarer, vil direkte indikation af typer direkte i variable definitionskonstruktioner gøre koden mere visuel, forståelig og lettere at redigere. For eksempel vil IDE'er med TypeScript-understøttelse straks kunne fremhæve fejl i indtastet JavaScript-kode uden yderligere konverteringer. Derudover vil indbygget typeunderstøttelse gøre det muligt at køre programmer skrevet på indtastede JavaScript-dialekter, såsom TypeScript og Flow, uden at transpilere fra et sprog til et andet.

Det foreslås at tilføje en syntaks med typeoplysninger til JavaScript-sproget

Blandt typerne foreslås det at tilføje "streng", "tal" og "boolean", som kan bruges ved definition af variabler, funktionsparametre, objektelementer, klassefelter, indtastede arrays ("tal[]"). Det foreslås også at yde støtte til flettede typer ("streng | nummer") og generiske. lad x: streng; function add(a: tal, b: tal) { return a + b; } interface Person { navn: streng; alder:nummer; } funktion foo (x: T) { return x; } funktion foo(x: streng | tal): streng | nummer { if (typeof x === tal) { return x + 1 } else { return x + "!" } }

Kilde: opennet.ru

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