Microsoft, Igalia en Bloomberg het die inisiatief geneem om sintaksis in die JavaScript-spesifikasie in te sluit vir eksplisiete tipe definisies, soortgelyk aan die sintaksis wat in die TypeScript-taal gebruik word. Tans word die prototipe-veranderinge wat voorgestel word vir insluiting in die ECMAScript-standaard ingedien vir voorlopige besprekings (stadium 0). By die volgende vergadering van die TC39-komitee in Maart word daar beplan om na die eerste fase van oorweging van die voorstel te beweeg met die betrokkenheid van die deskundige gemeenskap van ECMA.
As u uitdruklik gespesifiseerde tipe inligting het, sal u baie foute tydens die ontwikkelingsproses kan vermy, dit moontlik maak om addisionele optimaliseringstegnieke te gebruik, ontfouting te vereenvoudig en die kode meer leesbaar en makliker te maak vir wysiging en ondersteuning deur derdeparty-ontwikkelaars. Tipe ondersteuning word voorgestel om geïmplementeer te word as 'n opsionele kenmerk - JavaScript-enjins en looptye wat nie tipe kontrolering ondersteun nie, sal aantekeninge met tipe inligting ignoreer en die kode soos voorheen verwerk, en tipe data as kommentaar hanteer. Maar tipe nagaan gereedskap sal in staat wees om die beskikbare inligting te gebruik om foute te identifiseer wat verband hou met verkeerde gebruik van tipes.
Verder, in teenstelling met tipe inligting wat gespesifiseer word met behulp van JSDoc-aantekeninge wat in die vorm van kommentaar gespesifiseer word, sal direkte aanduiding van tipes direk in veranderlike definisiekonstrukte die kode meer visueel, verstaanbaar en makliker maak om te redigeer. Byvoorbeeld, IDE's met TypeScript-ondersteuning sal onmiddellik foute in getikte JavaScript-kode kan uitlig sonder bykomende omskakelings. Boonop sal ingeboude tipe ondersteuning dit moontlik maak om programme wat in getikte JavaScript-dialekte geskryf is, soos TypeScript en Flow, te laat loop sonder om van een taal na 'n ander te transpileer.

Onder die tipes word voorgestel om "string", "getal" en "boolean" by te voeg, wat gebruik kan word wanneer veranderlikes, funksieparameters, objekelemente, klasvelde, getikte skikkings (“getal[]”) gedefinieer word. Daar word ook voorgestel om ondersteuning te bied vir saamgevoegde tipes (“string | nommer”) en generiese. laat x: tou; funksie voeg (a: getal, b: getal) { gee a + b terug; } koppelvlak Persoon { naam: string; ouderdom:getal; } funksie foo (x: T) { gee terug x; } funksie foo(x: string | nommer): string | getal { if (tipe van x === getal) { gee x + 1 } anders { gee terug x + "!" } }
Bron: opennet.ru
