Yo pwopoze pou ajoute sentaks ak enfòmasyon tip nan lang JavaScript

Microsoft, Igalia, ak Bloomberg te pran inisyativ pou mete sentaks nan spesifikasyon JavaScript pou definisyon kalite klè, menm jan ak sentaks yo itilize nan lang TypeScript la. Kounye a, chanjman pwototip yo pwopoze pou enkli nan estanda ECMAScript yo soumèt pou diskisyon preliminè (Etap 0). Nan pwochen reyinyon komite TC39 la nan mwa mas, li te planifye pou avanse pou pi nan premye etap nan konsiderasyon pwopozisyon an ak patisipasyon nan kominote a ekspè nan ECMA.

Lè w gen enfòmasyon sou kalite espesifikman espesifye, pral pèmèt ou evite anpil erè pandan pwosesis devlopman an, fè li posib pou itilize teknik optimize adisyonèl, senplifye debogaj, epi fè kòd la pi lizib ak pi fasil pou modifikasyon ak sipò pa devlopè twazyèm pati. Yo pwopoze sipò tip yo dwe aplike kòm yon karakteristik opsyonèl - motè JavaScript ak ègzekutabl ki pa sipòte tip tcheke pral inyore anotasyon ak enfòmasyon sou tip epi trete kòd la jan anvan, trete done tip kòm kòmantè. Men, zouti tcheke tip yo pral kapab sèvi ak enfòmasyon ki disponib yo idantifye erè ki asosye ak itilizasyon kòrèk nan kalite.

Anplis, kontrèman ak kalite enfòmasyon ki espesifye lè l sèvi avèk JSDoc annotations espesifye nan fòm kòmantè, endikasyon dirèk nan kalite dirèkteman nan konstwi definisyon varyab pral fè kòd la pi vizyèl, konprann ak pi fasil pou edite. Pou egzanp, IDE ki gen sipò TypeScript yo pral kapab imedyatman mete aksan sou erè nan kòd JavaScript tape san konvèsyon adisyonèl. Anplis de sa, sipò kalite entegre pral fè li posib pou kouri pwogram ki ekri nan dyalèk tape JavaScript, tankou TypeScript ak Flow, san yo pa transpile soti nan yon lang nan yon lòt.

Yo pwopoze pou ajoute sentaks ak enfòmasyon tip nan lang JavaScript

Pami kalite yo, li pwopoze pou ajoute "fisèl", "nimewo" ak "boolean", ki ka itilize lè defini varyab, paramèt fonksyon, eleman objè, jaden klas, etalaj tape ("nimewo []"). Yo pwopoze tou pou bay sipò pou kalite fizyone ("string | nimewo") ak jenerik. kite x: fisèl; fonksyon ajoute (a: nimewo, b: nimewo) { retounen a + b; } koòdone Moun { non: fisèl; laj: nimewo; } fonksyon foo (x: T) { retounen x; } fonksyon foo(x: fisèl | nimewo): fisèl | nimewo { si (typeof x === nimewo) { retounen x + 1 } else { retounen x + "!" } }

Sous: opennet.ru

Add nouvo kòmantè