Bwriedir ychwanegu cystrawen gyda gwybodaeth teip i'r iaith JavaScript

Mae Microsoft, Igalia, a Bloomberg wedi cymryd yr awenau i gynnwys cystrawen yn y fanyleb JavaScript ar gyfer diffiniadau teip penodol, yn debyg i'r gystrawen a ddefnyddir yn yr iaith TypeScript. Ar hyn o bryd, mae'r newidiadau prototeip y bwriedir eu cynnwys yn y safon ECMAScript yn cael eu cyflwyno ar gyfer trafodaethau rhagarweiniol (Cam 0). Yng nghyfarfod nesaf pwyllgor TC39 ym mis Mawrth, bwriedir symud ymlaen i gam cyntaf ystyried y cynnig gyda chyfranogiad y gymuned arbenigol o ECMA.

Bydd cael gwybodaeth fath benodol yn eich galluogi i osgoi llawer o wallau yn ystod y broses ddatblygu, ei gwneud hi'n bosibl defnyddio technegau optimeiddio ychwanegol, symleiddio dadfygio, a gwneud y cod yn fwy darllenadwy ac yn haws i ddatblygwyr trydydd parti ei addasu a'i gefnogi. Cynigir gweithredu cefnogaeth math fel nodwedd ddewisol - bydd peiriannau JavaScript ac amseroedd rhedeg nad ydynt yn cefnogi gwirio math yn anwybyddu anodiadau gyda gwybodaeth math ac yn prosesu'r cod fel o'r blaen, gan drin data math fel sylwadau. Ond bydd offer gwirio teip yn gallu defnyddio'r wybodaeth sydd ar gael i nodi gwallau sy'n gysylltiedig Γ’ defnydd anghywir o fathau.

Ar ben hynny, yn wahanol i wybodaeth teip a nodir gan ddefnyddio anodiadau JSDoc a nodir ar ffurf sylwadau, bydd dynodi mathau'n uniongyrchol yn uniongyrchol mewn lluniadau diffiniad amrywiol yn gwneud y cod yn fwy gweledol, dealladwy a haws ei olygu. Er enghraifft, bydd IDEs gyda chefnogaeth TypeScript yn gallu tynnu sylw ar unwaith at wallau mewn cod JavaScript wedi'i deipio heb drawsnewidiadau ychwanegol. Yn ogystal, bydd cefnogaeth o fath adeiledig yn ei gwneud hi'n bosibl rhedeg rhaglenni sydd wedi'u hysgrifennu mewn tafodieithoedd JavaScript wedi'u teipio, fel TypeScript a Flow, heb drawsgludo o un iaith i'r llall.

Bwriedir ychwanegu cystrawen gyda gwybodaeth teip i'r iaith JavaScript

Ymhlith y mathau, cynigir ychwanegu β€œllinyn”, β€œrhif” a β€œboolean”, y gellir eu defnyddio wrth ddiffinio newidynnau, paramedrau swyddogaeth, elfennau gwrthrych, meysydd dosbarth, araeau wedi'u teipio (β€œrhif []”). Cynigir hefyd darparu cymorth ar gyfer mathau cyfun (β€œllinyn | rhif”) a generig. gadewch x: llinyn; swyddogaeth ychwanegu(a: rhif, b: rhif) { dychwelyd a + b; } rhyngwyneb Person { name : string ; oedran:rhif; } swyddogaeth foo (x: T) { dychwelyd x; } ffwythiant foo(x: llinyn | rhif): llinyn | rhif { os (typeof x === rhif) { dychwelyd x + 1 } arall { dychwelyd x + "!" } }

Ffynhonnell: opennet.ru

Ychwanegu sylw