Det föreslås att lägga till syntax med typinformation till JavaScript-språket

Microsoft, Igalia och Bloomberg har tagit initiativet att inkludera syntax i JavaScript-specifikationen för explicita typdefinitioner, liknande syntaxen som används i TypeScript-språket. För närvarande lämnas de prototypändringar som föreslås för inkludering i ECMAScript-standarden för preliminära diskussioner (steg 0). Vid nästa möte med TC39-kommittén i mars är det planerat att gå till det första steget i behandlingen av förslaget med inblandning av expertgruppen från ECMA.

Att ha explicit specificerad typinformation gör att du kan undvika många fel under utvecklingsprocessen, göra det möjligt att använda ytterligare optimeringstekniker, förenkla felsökning och göra koden mer läsbar och lättare för modifiering och support av tredjepartsutvecklare. Typstöd föreslås implementeras som en valfri funktion - JavaScript-motorer och körtider som inte stöder typkontroll kommer att ignorera anteckningar med typinformation och bearbeta koden som tidigare, och behandla typdata som kommentarer. Men typkontrollverktyg kommer att kunna använda den tillgängliga informationen för att identifiera fel associerade med felaktig användning av typer.

Dessutom, i motsats till typinformation som specificeras med JSDoc-annoteringar specificerade i form av kommentarer, kommer direkt indikering av typer direkt i variabeldefinitionskonstruktioner att göra koden mer visuell, begriplig och lättare att redigera. Till exempel kommer IDE med TypeScript-stöd att omedelbart markera fel i inskriven JavaScript-kod utan ytterligare konverteringar. Dessutom kommer inbyggt typstöd att göra det möjligt att köra program skrivna på maskinskrivna JavaScript-dialekter, som TypeScript och Flow, utan att transpilera från ett språk till ett annat.

Det föreslås att lägga till syntax med typinformation till JavaScript-språket

Bland typerna föreslås att man lägger till "sträng", "nummer" och "boolean", som kan användas vid definition av variabler, funktionsparametrar, objektelement, klassfält, typade arrayer ("nummer[]"). Det föreslås också att ge stöd för sammanslagna typer (“sträng | nummer”) och generika. låt x: sträng; function add(a: tal, b: tal) { return a + b; } gränssnitt Person { namn: sträng; ålder:nummer; } funktion foo (x: T) { return x; } funktion foo(x: sträng | nummer): sträng | nummer { if (typ av x === tal) { return x + 1 } else { return x + "!" } }

Källa: opennet.ru

Lägg en kommentar