เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบชเบฐเป€เบซเบ™เบตเปƒเบซเป‰เป€เบžเบตเปˆเบก syntax เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบ›เบฐเป€เบžเบ”เบเบฑเบšเบžเบฒเบชเบฒ JavaScript

ะšะพะผะฟะฐะฝะธะธ Microsoft, Igalia ะธ Bloomberg ะฒั‹ัั‚ัƒะฟะธะปะธ ั ะธะฝะธั†ะธะฐั‚ะธะฒะพะน ะฒะบะปัŽั‡ะตะฝะธั ะฒ ัะฟะตั†ะธั„ะธะบะฐั†ะธัŽ JavaScript ัะธะฝั‚ะฐะบัะธัะฐ ะดะปั ัะฒะฝะพะณะพ ะพะฟั€ะตะดะตะปะตะฝะธั ั‚ะธะฟะพะฒ, ะฟะพั…ะพะถะตะณะพ ะฝะฐ ัะธะฝั‚ะฐะบัะธั, ะฟั€ะธะผะตะฝัะตะผั‹ะน ะฒ ัะทั‹ะบะต TypeScript. ะ’ ะฝะฐัั‚ะพัั‰ะตะต ะฒั€ะตะผั ะฟั€ะพั‚ะพั‚ะธะฟ ะธะทะผะตะฝะตะฝะธะน, ะฟั€ะตะดะปะพะถะตะฝะฝั‹ะน ะดะปั ะฒะบะปัŽั‡ะตะฝะธั ะฒ ัั‚ะฐะฝะดะฐั€ั‚ ECMAScript, ะฒั‹ะฝะตัะตะฝ ะดะปั ะฟั€ะตะดะฒะฐั€ะธั‚ะตะปัŒะฝั‹ั… ะพะฑััƒะถะดะตะฝะธะน (Stage 0). ะะฐ ะฑะปะธะถะฐะนัˆะตะผ ะผะฐั€ั‚ะพะฒัะบะพะผ ะทะฐัะตะดะฐะฝะธะธ ะบะพะผะธั‚ะตั‚ะฐ TC39 ะฟะปะฐะฝะธั€ัƒะตั‚ัั ะฟะตั€ะตะนั‚ะธ ะฝะฐ ะฟะตั€ะฒัƒัŽ ัั‚ะฐะดะธัŽ ั€ะฐััะผะพั‚ั€ะตะฝะธั ะฟั€ะตะดะปะพะถะตะฝะธั ั ะฟั€ะธะฒะปะตั‡ะตะฝะธะตะผ ัะบัะฟะตั€ั‚ะฝะพะณะพ ัะพะพะฑั‰ะตัั‚ะฒะฐ ะธะท ECMA.

ะะฐะปะธั‡ะธะต ัะฒะฝะพ ะทะฐะดะฐะฝะฝะพะน ะธะฝั„ะพั€ะผะฐั†ะธะธ ะพ ั‚ะธะฟะฐั… ะฟะพะทะฒะพะปะธั‚ ะธะทะฑะตะถะฐั‚ัŒ ะผะฝะพะณะธั… ะพัˆะธะฑะพะบ ะฒ ะฟั€ะพั†ะตััะต ั€ะฐะทั€ะฐะฑะพั‚ะบะธ, ะดะฐัั‚ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ะทะฐะดะตะนัั‚ะฒะพะฒะฐั‚ัŒ ะดะพะฟะพะปะฝะธั‚ะตะปัŒะฝั‹ะต ั‚ะตั…ะฝะธะบะธ ะพะฟั‚ะธะผะธะทะฐั†ะธะธ, ัƒะฟั€ะพัั‚ะธั‚ ะพั‚ะปะฐะดะบัƒ ะธ ัะดะตะปะฐะตั‚ ะบะพะด ะฑะพะปะตะต ั‡ะธั‚ะฐะตะผั‹ะผ ะธ ะฟั€ะพัั‚ั‹ะผ ะดะปั ะดะพั€ะฐะฑะพั‚ะบะธ ะธ ะฟะพะดะดะตั€ะถะบะธ ัั‚ะพั€ะพะฝะฝะธะผะธ ั€ะฐะทั€ะฐะฑะพั‚ั‡ะธะบะฐะผะธ. ะŸะพะดะดะตั€ะถะบัƒ ั‚ะธะฟะพะฒ ะฟั€ะตะดะปะฐะณะฐะตั‚ัั ั€ะตะฐะปะธะทะพะฒะฐั‚ัŒ ะฒ ะฒะธะดะต ะพะฟั†ะธะพะฝะฐะปัŒะฝะพะน ะฒะพะทะผะพะถะฝะพัั‚ะธ โ€” JavaScript-ะดะฒะธะถะบะธ ะธ runtime ะฝะต ะฟะพะดะดะตั€ะถะธะฒะฐัŽั‰ะธะต ะฟั€ะพะฒะตั€ะบัƒ ั‚ะธะฟะพะฒ ะฑัƒะดัƒั‚ ะธะณะฝะพั€ะธั€ะพะฒะฐั‚ัŒ ะฐะฝะฝะพั‚ะฐั†ะธะธ ั ะธะฝั„ะพั€ะผะฐั†ะธะตะน ะพ ั‚ะธะฟะฐั… ะธ ะพะฑั€ะฐะฑะฐั‚ั‹ะฒะฐั‚ัŒ ะบะพะด ะบะฐะบ ั€ะฐะฝัŒัˆะต, ะฒะพัะฟั€ะธะฝะธะผะฐั ะดะฐะฝะฝั‹ะต ะพ ั‚ะธะฟะฐั… ะบะฐะบ ะบะพะผะผะตะฝั‚ะฐั€ะธะธ. ะะพ ะธะฝัั‚ั€ัƒะผะตะฝั‚ั‹ ะดะปั ะฟั€ะพะฒะตั€ะบะธ ั‚ะธะฟะพะฒ ัะผะพะณัƒั‚ ะฝะฐ ะพัะฝะพะฒะต ะดะพัั‚ัƒะฟะฝะพะน ะธะฝั„ะพั€ะผะฐั†ะธะธ ะฒั‹ัะฒะปัั‚ัŒ ะพัˆะธะฑะบะธ, ัะฒัะทะฐะฝะฝั‹ะต ั ะฝะตะบะพั€ั€ะตะบั‚ะฝั‹ะผ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะตะผ ั‚ะธะฟะพะฒ.

ะŸั€ะธ ัั‚ะพะผ ะฒ ะพั‚ะปะธั‡ะธะต ะพั‚ ะธะฝั„ะพั€ะผะฐั†ะธะธ ะพ ั‚ะธะฟะฐั…, ะทะฐะดะฐะฒะฐะตะผะพะน ะฟั€ะธ ะฟะพะผะพั‰ะธ ะฐะฝะฝะพั‚ะฐั†ะธะน JSDoc, ัƒะบะฐะทั‹ะฒะฐะตะผั‹ั… ะฒ ั„ะพั€ะผะต ะบะพะผะผะตะฝั‚ะฐั€ะธะตะฒ, ะฟั€ัะผะพะต ัƒะบะฐะทะฐะฝะธะต ั‚ะธะฟะพะฒ ะฝะตะฟะพัั€ะตะดัั‚ะฒะตะฝะฝะพ ะฒ ะบะพะฝัั‚ั€ัƒะบั†ะธัั… ะพะฟั€ะตะดะตะปะตะฝะธั ะฟะตั€ะตะผะตะฝะฝั‹ั… ัะดะตะปะฐะตั‚ ะบะพะด ะฑะพะปะตะต ะฝะฐะณะปัะดะฝั‹ะผ, ะฟะพะฝัั‚ะฝั‹ะผ ะธ ะฟั€ะพัั‚ั‹ะผ ะดะปั ั€ะตะดะฐะบั‚ะธั€ะพะฒะฐะฝะธั. ะะฐะฟั€ะธะผะตั€, ะธะฝั‚ะตะณั€ะธั€ะพะฒะฐะฝะฝั‹ะต ัั€ะตะดั‹ ั€ะฐะทั€ะฐะฑะพั‚ะบะธ ั ะฟะพะดะดะตั€ะถะบะพะน TypeScript ัะผะพะณัƒั‚ ัั€ะฐะทัƒ ะฟะพะดัะฒะตั‡ะธะฒะฐั‚ัŒ ะพัˆะธะฑะบะธ ะฒ ั‚ะธะฟะธะทะธั€ะพะฒะฐะฝะฝะพะผ JavaScript-ะบะพะดะต ะฑะตะท ะดะพะฟะพะปะฝะธั‚ะตะปัŒะฝั‹ั… ะฟั€ะตะพะฑั€ะฐะทะพะฒะฐะฝะธะน. ะšั€ะพะผะต ั‚ะพะณะพ, ะฒัั‚ั€ะพะตะฝะฝะฐั ะฟะพะดะดะตั€ะถะบะฐ ั‚ะธะฟะพะฒ ะดะฐัั‚ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ะฒั‹ะฟะพะปะฝัั‚ัŒ ะฟั€ะพะณั€ะฐะผะผั‹, ะฝะฐะฟะธัะฐะฝะฝั‹ะต ะฝะฐ ั‚ะธะฟะธะทะธั€ะพะฒะฐะฝะฝั‹ั… ะดะธะฐะปะตะบั‚ะฐั… JavaScript, ั‚ะฐะบะธั… ะบะฐะบ TypeScript ะธ Flow, ะฑะตะท ั‚ั€ะฐะฝัะฟะธะปัั†ะธะธ ะธะท ะพะดะฝะพะณะพ ัะทั‹ะบะฐ ะฒ ะดั€ัƒะณะพะน.

เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบชเบฐเป€เบซเบ™เบตเปƒเบซเป‰เป€เบžเบตเปˆเบก syntax เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบ›เบฐเป€เบžเบ”เบเบฑเบšเบžเบฒเบชเบฒ JavaScript

ะ˜ะท ั‚ะธะฟะพะฒ ะฟั€ะตะดะปะฐะณะฐะตั‚ัั ะดะพะฑะฐะฒะธั‚ัŒ ยซstringยป, ยซnumberยป ะธ ยซbooleanยป, ะบะพั‚ะพั€ั‹ะต ะผะพะถะฝะพ ะฑัƒะดะตั‚ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะฟั€ะธ ะพะฟั€ะตะดะตะปะตะฝะธะธ ะฟะตั€ะตะผะตะฝะฝั‹ั…, ะฟะฐั€ะฐะผะตั‚ั€ะพะฒ ั„ัƒะฝะบั†ะธะน, ัะปะตะผะตะฝั‚ะพะฒ ะพะฑัŠะตะบั‚ะพะฒ, ะฟะพะปะตะน ะบะปะฐััะพะฒ, ั‚ะธะฟะธะทะธั€ะพะฒะฐะฝะฝั‹ั… ะผะฐััะธะฒะพะฒ (ยซnumber[]ยป). ะŸั€ะตะดะปะฐะณะฐะตั‚ัั ั‚ะฐะบะถะต ะพะฑะตัะฟะตั‡ะธั‚ัŒ ะฟะพะดะดะตั€ะถะบัƒ ะพะฑัŠะตะดะธะฝั‘ะฝะฝั‹ั… ั‚ะธะฟะพะฒ (ยซstring | numberยป) ะธ ะดะถะตะฝะตั€ะธะบะพะฒ. let x: string; function add(a: number, b: number) { return a + b; } interface Person { name: string; age: number; } function foo<T>(x: T) { return x; } function foo(x: string | number): string | number { if (typeof x === number) { return x + 1 } else { return x + ยซ!ยป } }

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™