ะะพะผะฟะฐะฝะธะธ Microsoft, Igalia ะธ Bloomberg ะฒััััะฟะธะปะธ ั ะธะฝะธัะธะฐัะธะฒะพะน ะฒะบะปััะตะฝะธั ะฒ ัะฟะตัะธัะธะบะฐัะธั JavaScript ัะธะฝัะฐะบัะธัะฐ ะดะปั ัะฒะฝะพะณะพ ะพะฟัะตะดะตะปะตะฝะธั ัะธะฟะพะฒ, ะฟะพั ะพะถะตะณะพ ะฝะฐ ัะธะฝัะฐะบัะธั, ะฟัะธะผะตะฝัะตะผัะน ะฒ ัะทัะบะต TypeScript. ะ ะฝะฐััะพััะตะต ะฒัะตะผั ะฟัะพัะพัะธะฟ ะธะทะผะตะฝะตะฝะธะน, ะฟัะตะดะปะพะถะตะฝะฝัะน ะดะปั ะฒะบะปััะตะฝะธั ะฒ ััะฐะฝะดะฐัั ECMAScript, ะฒัะฝะตัะตะฝ ะดะปั ะฟัะตะดะฒะฐัะธัะตะปัะฝัั ะพะฑััะถะดะตะฝะธะน (Stage 0). ะะฐ ะฑะปะธะถะฐะนัะตะผ ะผะฐััะพะฒัะบะพะผ ะทะฐัะตะดะฐะฝะธะธ ะบะพะผะธัะตัะฐ TC39 ะฟะปะฐะฝะธััะตััั ะฟะตัะตะนัะธ ะฝะฐ ะฟะตัะฒัั ััะฐะดะธั ัะฐััะผะพััะตะฝะธั ะฟัะตะดะปะพะถะตะฝะธั ั ะฟัะธะฒะปะตัะตะฝะธะตะผ ัะบัะฟะตััะฝะพะณะพ ัะพะพะฑัะตััะฒะฐ ะธะท ECMA.
ะะฐะปะธัะธะต ัะฒะฝะพ ะทะฐะดะฐะฝะฝะพะน ะธะฝัะพัะผะฐัะธะธ ะพ ัะธะฟะฐั ะฟะพะทะฒะพะปะธั ะธะทะฑะตะถะฐัั ะผะฝะพะณะธั ะพัะธะฑะพะบ ะฒ ะฟัะพัะตััะต ัะฐะทัะฐะฑะพัะบะธ, ะดะฐัั ะฒะพะทะผะพะถะฝะพััั ะทะฐะดะตะนััะฒะพะฒะฐัั ะดะพะฟะพะปะฝะธัะตะปัะฝัะต ัะตั ะฝะธะบะธ ะพะฟัะธะผะธะทะฐัะธะธ, ัะฟัะพััะธั ะพัะปะฐะดะบั ะธ ัะดะตะปะฐะตั ะบะพะด ะฑะพะปะตะต ัะธัะฐะตะผัะผ ะธ ะฟัะพัััะผ ะดะปั ะดะพัะฐะฑะพัะบะธ ะธ ะฟะพะดะดะตัะถะบะธ ััะพัะพะฝะฝะธะผะธ ัะฐะทัะฐะฑะพััะธะบะฐะผะธ. ะะพะดะดะตัะถะบั ัะธะฟะพะฒ ะฟัะตะดะปะฐะณะฐะตััั ัะตะฐะปะธะทะพะฒะฐัั ะฒ ะฒะธะดะต ะพะฟัะธะพะฝะฐะปัะฝะพะน ะฒะพะทะผะพะถะฝะพััะธ โ JavaScript-ะดะฒะธะถะบะธ ะธ runtime ะฝะต ะฟะพะดะดะตัะถะธะฒะฐััะธะต ะฟัะพะฒะตัะบั ัะธะฟะพะฒ ะฑัะดัั ะธะณะฝะพัะธัะพะฒะฐัั ะฐะฝะฝะพัะฐัะธะธ ั ะธะฝัะพัะผะฐัะธะตะน ะพ ัะธะฟะฐั ะธ ะพะฑัะฐะฑะฐััะฒะฐัั ะบะพะด ะบะฐะบ ัะฐะฝััะต, ะฒะพัะฟัะธะฝะธะผะฐั ะดะฐะฝะฝัะต ะพ ัะธะฟะฐั ะบะฐะบ ะบะพะผะผะตะฝัะฐัะธะธ. ะะพ ะธะฝััััะผะตะฝัั ะดะปั ะฟัะพะฒะตัะบะธ ัะธะฟะพะฒ ัะผะพะณัั ะฝะฐ ะพัะฝะพะฒะต ะดะพัััะฟะฝะพะน ะธะฝัะพัะผะฐัะธะธ ะฒััะฒะปััั ะพัะธะฑะบะธ, ัะฒัะทะฐะฝะฝัะต ั ะฝะตะบะพััะตะบัะฝัะผ ะธัะฟะพะปัะทะพะฒะฐะฝะธะตะผ ัะธะฟะพะฒ.
ะัะธ ััะพะผ ะฒ ะพัะปะธัะธะต ะพั ะธะฝัะพัะผะฐัะธะธ ะพ ัะธะฟะฐั , ะทะฐะดะฐะฒะฐะตะผะพะน ะฟัะธ ะฟะพะผะพัะธ ะฐะฝะฝะพัะฐัะธะน JSDoc, ัะบะฐะทัะฒะฐะตะผัั ะฒ ัะพัะผะต ะบะพะผะผะตะฝัะฐัะธะตะฒ, ะฟััะผะพะต ัะบะฐะทะฐะฝะธะต ัะธะฟะพะฒ ะฝะตะฟะพััะตะดััะฒะตะฝะฝะพ ะฒ ะบะพะฝััััะบัะธัั ะพะฟัะตะดะตะปะตะฝะธั ะฟะตัะตะผะตะฝะฝัั ัะดะตะปะฐะตั ะบะพะด ะฑะพะปะตะต ะฝะฐะณะปัะดะฝัะผ, ะฟะพะฝััะฝัะผ ะธ ะฟัะพัััะผ ะดะปั ัะตะดะฐะบัะธัะพะฒะฐะฝะธั. ะะฐะฟัะธะผะตั, ะธะฝัะตะณัะธัะพะฒะฐะฝะฝัะต ััะตะดั ัะฐะทัะฐะฑะพัะบะธ ั ะฟะพะดะดะตัะถะบะพะน TypeScript ัะผะพะณัั ััะฐะทั ะฟะพะดัะฒะตัะธะฒะฐัั ะพัะธะฑะบะธ ะฒ ัะธะฟะธะทะธัะพะฒะฐะฝะฝะพะผ JavaScript-ะบะพะดะต ะฑะตะท ะดะพะฟะพะปะฝะธัะตะปัะฝัั ะฟัะตะพะฑัะฐะทะพะฒะฐะฝะธะน. ะัะพะผะต ัะพะณะพ, ะฒัััะพะตะฝะฝะฐั ะฟะพะดะดะตัะถะบะฐ ัะธะฟะพะฒ ะดะฐัั ะฒะพะทะผะพะถะฝะพััั ะฒัะฟะพะปะฝััั ะฟัะพะณัะฐะผะผั, ะฝะฐะฟะธัะฐะฝะฝัะต ะฝะฐ ัะธะฟะธะทะธัะพะฒะฐะฝะฝัั ะดะธะฐะปะตะบัะฐั JavaScript, ัะฐะบะธั ะบะฐะบ TypeScript ะธ Flow, ะฑะตะท ััะฐะฝัะฟะธะปััะธะธ ะธะท ะพะดะฝะพะณะพ ัะทัะบะฐ ะฒ ะดััะณะพะน.
ะะท ัะธะฟะพะฒ ะฟัะตะดะปะฐะณะฐะตััั ะดะพะฑะฐะฒะธัั ยซ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