рдпреЛ рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛рдорд╛ рдЯрд╛рдЗрдк рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рд╕рд╛рде рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рдердкреНрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫ

Microsoft, Igalia, рд░ Bloomberg рд▓реЗ TypeScript рднрд╛рд╖рд╛рдорд╛ рдкреНрд░рдпреЛрдЧ рд╣реБрдиреЗ рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рдЬрд╕реНрддреИ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдорд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рдкрд╣рд▓ рдЧрд░реЗрдХрд╛ рдЫрдиреНред рд╣рд╛рд▓, ECMAScript рдорд╛рдирдХрдорд╛ рд╕рдорд╛рд╡реЗрд╢рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдЫрд▓рдлрд▓рдХрд╛ рд▓рд╛рдЧрд┐ рдкреЗрд╢ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН (рдЪрд░рдг 0)ред рдорд╛рд░реНрдЪрдорд╛ TC39 рд╕рдорд┐рддрд┐рдХреЛ рдЕрд░реНрдХреЛ рдмреИрдардХрдорд╛, ECMA рдмрд╛рдЯ рд╡рд┐рдЬреНрдЮ рд╕рдореБрджрд╛рдпрдХреЛ рд╕рдВрд▓рдЧреНрдирддрд╛рдорд╛ рдкреНрд░рд╕реНрддрд╛рд╡рдХреЛ рд╡рд┐рдЪрд╛рд░рдХреЛ рдкрд╣рд┐рд▓реЛ рдЪрд░рдгрдорд╛ рдЬрд╛рдиреЗ рдпреЛрдЬрдирд╛ рдЫред

рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░рдХреЛ рдЬрд╛рдирдХрд╛рд░реА рднрдПрдХреЛрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдХреНрд░рдордорд╛ рдзреЗрд░реИ рддреНрд░реБрдЯрд┐рд╣рд░реВрдмрд╛рдЯ рдмрдЪреНрди, рдердк рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬреЗрд╕рди рдкреНрд░рд╡рд┐рдзрд┐рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди, рдбрд┐рдмрдЧрд┐рдЩ рд╕рд░рд▓ рдмрдирд╛рдЙрди, рд░ рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рдорд╛рд░реНрдЬрди рд░ рд╕рдорд░реНрдердирдХреЛ рд▓рд╛рдЧрд┐ рдХреЛрдбрд▓рд╛рдИ рдердк рдкрдвреНрди рдпреЛрдЧреНрдп рд░ рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫред рдкреНрд░рдХрд╛рд░ рд╕рдорд░реНрдердирд▓рд╛рдИ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдХреЛ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫ - рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдиреНрдЬрд┐рдирд╣рд░реВ рд░ рд░рдирдЯрд╛рдЗрдорд╣рд░реВ рдЬрд╕рд▓реЗ рдкреНрд░рдХрд╛рд░ рдЬрд╛рдБрдЪрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрди, рдЯрд╛рдЗрдк рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рд╕рд╛рде рдПрдиреЛрдЯреЗрд╕рдирд╣рд░реВрд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрджрдЫ рд░ рдХреЛрдбрд▓рд╛рдИ рдкрд╣рд┐рд▓реЗрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджрдЫ, рдЯрд╛рдЗрдк рдбреЗрдЯрд╛рд▓рд╛рдИ рдЯрд┐рдкреНрдкрдгреАрдХреЛ рд░реВрдкрдорд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЧрд░реНрджрдЫред рддрд░ рдкреНрд░рдХрд╛рд░ рдЬрд╛рдБрдЪ рдЙрдкрдХрд░рдгрд╣рд░реВрд▓реЗ рдкреНрд░рдХрд╛рд░рд╣рд░реВрдХреЛ рдЧрд▓рдд рдкреНрд░рдпреЛрдЧрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рддреНрд░реБрдЯрд┐рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди рдЙрдкрд▓рдмреНрдз рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреЗрдЫред

рдпрд╕рдмрд╛рд╣реЗрдХ, рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ JSDoc рдПрдиреЛрдЯреЗрд╕рдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рд╡рд┐рдкрд░рд┐рдд, рдЪрд░ рдкрд░рд┐рднрд╛рд╖рд╛ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВрдорд╛ рд╕реАрдзрд╛ рдкреНрд░рдХрд╛рд░рд╣рд░реВрдХреЛ рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдЩреНрдХреЗрддрд▓реЗ рдХреЛрдбрд▓рд╛рдИ рдердк рджреГрд╢реНрдп, рдмреБрдЭреНрди рдпреЛрдЧреНрдп рд░ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрджрдЫред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, TypeScript рд╕рдорд░реНрдерди рд╕рдВрдЧ IDEs рдердк рд░реВрдкрд╛рдиреНрддрд░рдг рдмрд┐рдирд╛ рдЯрд╛рдЗрдк рдЧрд░рд┐рдПрдХреЛ JavaScript рдХреЛрдб рдорд╛ рддреНрд░реБрдЯрд┐рд╣рд░реБ рд▓рд╛рдИ рддреБрд░реБрдиреНрддреИ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреЗрдЫред рдердк рд░реВрдкрдорд╛, рдмрд┐рд▓реНрдЯ-рдЗрди рдкреНрд░рдХрд╛рд░ рд╕рдорд░реНрдердирд▓реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░ рдлреНрд▓реЛ рдЬрд╕реНрддрд╛ рдЯрд╛рдЗрдк рдЧрд░рд┐рдПрдХреЛ рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмреЛрд▓реАрд╣рд░реВрдорд╛ рд▓реЗрдЦрд┐рдПрдХрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд╣рд░реВ рдЪрд▓рд╛рдЙрди рд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрджрдЫ, рдПрдХ рднрд╛рд╖рд╛рдмрд╛рдЯ рдЕрд░реНрдХреЛ рднрд╛рд╖рд╛рдорд╛ рдЯреНрд░рд╛рдиреНрд╕рдкрд┐рд▓ рдирдЧрд░реАред

рдпреЛ рдЬрд╛рднрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛рдорд╛ рдЯрд╛рдЗрдк рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рд╕рд╛рде рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рдердкреНрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫ

рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдордзреНрдпреЗ, рдпреЛ "рд╕реНрдЯреНрд░рд┐рдВрдЧ", "рдирдореНрдмрд░" рд░ "рдмреБрд▓рд┐рдпрди" рдердкреНрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬреБрди рдЪрд░, рдкреНрд░рдХрд╛рд░реНрдп рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ, рд╡рд╕реНрддреБ рддрддреНрд╡рд╣рд░реВ, рд╡рд░реНрдЧ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ, рдЯрд╛рдЗрдк рдЧрд░рд┐рдПрдХрд╛ рдПрд░реЗрд╣рд░реВ ("рдирдореНрдмрд░[]") рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдпреЛ рдорд░реНрдЬ рдЧрд░рд┐рдПрдХрд╛ рдкреНрд░рдХрд╛рд░рд╣рд░реВ (тАЬрд╕реНрдЯреНрд░рд┐рдЩ | рдирдореНрдмрд░тАЭ) рд░ рдЬреЗрдиреЗрд░рд┐рдХрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдЧрд░реНрди рдкрдирд┐ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫред let x: string; рдкреНрд░рдХрд╛рд░реНрдп add(a: number, b: number) { рд░рд┐рдЯрд░реНрди a + b; } рдЗрдиреНрдЯрд░рдлреЗрд╕ рд╡реНрдпрдХреНрддрд┐ {рдирд╛рдо: рд╕реНрдЯреНрд░рд┐рдЩ; рдЙрдореЗрд░: рд╕рдВрдЦреНрдпрд╛; } рдкреНрд░рдХрд╛рд░реНрдп foo (x: T) { рд░рд┐рдЯрд░реНрди x; } рдкреНрд░рдХрд╛рд░реНрдп foo(x: string | number): string | рд╕рдВрдЦреНрдпрд╛ { рдпрджрд┐ (x === рдирдореНрдмрд░рдХреЛ рдкреНрд░рдХрд╛рд░) { рдлрд░реНрдХрд╛рдЙрдиреБрд╣реЛрд╕реН x + 1 } рдЕрдиреНрдп { рдлрд░реНрдХрд╛рдЙрдиреБрд╣реЛрд╕реН x + "!" } }

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди