рдмрдврд╝реА рд╣реБрдИ рдкреНрд░рдпреЛрдЬреНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдирдИ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд╡рд┐рдзрд╛рдПрдБ

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдХрдИ рдорд╛рдпрдиреЛрдВ рдореЗрдВ, рдЕрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреА рддрд░рд╣ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдбрд┐рдВрдЧ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рдЬреЛ рдЖрдкрдХреЛ рдмреЗрд╣рддрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

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



рд╕рд╛рдордЧреНрд░реА, рдЬрд┐рд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдЖрдЬ рд╣рдо рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рддрд╛рдЬрд╝рд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ ред

рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд╕реНрддреБрдУрдВ рдФрд░ рд╕рд░рдгрд┐рдпреЛрдВ


рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рд╕рд╛рдорд╛рдиреНрдп рдЪрд░ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдЖрдк рд╕рд╣рд╛рдпрдХ рдкреНрд░рдХрд╛рд░ ReadonlyрдФрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ReadonlyArrayред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЯрд╛рдЗрдк рдПрдиреЛрдЯреЗрд╢рди рдореЗрдВ рд╡рд┐рд╖рдорддрд╛ рдХреА рднрд╛рд╡рдирд╛ рдкреИрджрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм []рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╡рд░реНрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд░реЗ рдХреА рдШреЛрд╖рдгрд╛ рдХреА рдЬрд╛рддреА рд╣реИ ред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.4 рдЙрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд▓реЗрдмрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рддрд░реАрдХрд╛ рдкреЗрд╢ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рдгрд┐рдпрд╛рдБ рд╣реИрдВред рддреБрд░рдВрдд рд╣реА рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдирдпрд╛ рддрд░реАрдХрд╛ рд╕рд╛рдордиреЗ рдЖрдпрд╛ рдЬреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЬреНрдп рдореЗрдВ рд╕реБрдзрд╛рд░


рдЬрдм рдЖрдкрдХреЛ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реБрдП, рдЕрдм рдЖрдк рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ readonlyред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рджреЛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕рдорд╛рди рд╣реИрдВ:

function foo(s: ReadonlyArray<string>) { /* ... */ }
 
function foo(s: readonly string[]) { /* ... */ }

рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕рд░рдгреА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рднреА рдкреНрд░рдпрд╛рд╕ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ push) рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣реЛрдЧрд╛ред рдпрд╣ рдирд╡рд╛рдЪрд╛рд░ рдПрдХ рд╕рд╣рд╛рдпрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХреЛрдб рдХреЛ рдкрдврд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рд╡рд╛рд▓реА рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдмрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдЕрднреА рднреА рд╕рд╣рд╛рдпрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ Readonlyред

рдХрд╛рд╕реНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдЪрд░ рдХреА рдкреНрд░рдпреЛрдЬреНрдп рдореЗрдВ рд╕реБрдзрд╛рд░


рдХрд┐рд╕реА рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШреЛрд╖рд┐рдд рдЪрд░ рдХрд╛ рдкреНрд░рдХрд╛рд░ constрдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЕрд╡рдзрд╛рд░рдгрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдореМрдЬреВрдж рд╣реИред рдпрд╣ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдХрдареЛрд░ рдХрд╛рд░реНрдп рдХреЗ рдЖрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рднреА рдЕрдкрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдСрдмреНрдЬреЗрдХреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕, рдЬреИрд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдРрд╕реА рд╕рдВрд░рдЪрдирд╛рдПрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдирд╣реАрдВ рд╣реИрдВред рдХрд┐рд╕реА рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ constрдЕрд░реНрде рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╛ рд╕рд░рдгреА рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рд╕реНрдерд┐рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣реЗрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдпрд╛ рд╕рд░рдгреА рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд╛рд╕реНрдЯ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдП рдмрд┐рдирд╛, рдЖрдк рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░рдгреА рдореЗрдВ рдирдП рдорд╛рди рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ push, рдЖрдк рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ ReadonlyрдФрд░ReadonlyArrayрдЖрдк рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ рдХрд┐ рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реЛрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рд░ рдмрд╛рд░ рдХреЛрдб рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдЗрдХрд╛рдИ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

interface Person { 
  name: string; 
}
 
const person = { 
  name: 'Will' 
} as Readonly<Person>;
person.name = 'Diana'; // !

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.4 рдореЗрдВ, рдЕрдиреНрдп рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ, рдХреЙрдиреНрд╕реНрдЯреЗрдВрдЯ рдПрд╢реНрдпреЛрд░реЗрдВрд╕ (рдирд┐рд░рдВрддрд░ рдХрдерди) рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛, рдЬреЛ рдПрдХ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ, рджрд┐рдЦрд╛рдИ рджреА as constред рдпрд╣ рд╕реНрдерд┐рд░ рд╡рд╕реНрддреБрдУрдВ рдФрд░ рд╕рд░рдгрд┐рдпреЛрдВ рд╡рд╛рд▓реЗ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓реАрдХреГрдд рд╡рд┐рдзрд┐ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рдШреЛрд╖рдгрд╛рдПрдВ рдШреЛрд╖рдгрд╛ as constрдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдирд┐рд░рдВрддрд░рддрд╛ рдЬреЛрдбрд╝рдХрд░ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВ ред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдн рд╣реИ, рдЬреЛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ as constред

const person = { 
        name: 'Will' 
} as const;
 
person.name = 'Diana'; // !
 
//      as const
const array = [1, 2, 3] as const
array.push(4); // !

рд╣реЗрд▓реНрдкрд░ рдЯрд╛рдЗрдк рдУрдорд┐рдЯ


рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрдИ рд╕рд╣рд╛рдпрдХ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ рдЬреЛ рдореМрдЬреВрджрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдирдП рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдк рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВ, рдпрд╛ рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред

рд╕рд╣рд╛рдпрдХ рдкреНрд░рдХрд╛рд░ Partialрд╡реИрдХрд▓реНрдкрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рднреА рдЧреБрдгреЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.5 рдХреА рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ рдкрд╣рд▓реЗ, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдореИрдВрдиреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдпрд╣ рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬреИрд╕реЗ рд╕рд╣рд╛рдпрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдм рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ Omitред рдпрд╣ рдкреНрд░рдХрд╛рд░, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕рдХреЗ рдирд╛рдо рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ, рдЖрдкрдХреЛ рдХреБрдЫ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред OmitрдХреБрдВрдЬреА рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рд╕рдВрдпреЛрдЬрди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдПрдХ рдирдпрд╛ рдкреНрд░рдХрд╛рд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдХреБрдВрдЬрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдЧреБрдгреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реЗ рджрд┐рди рдЧрдП рдЬрдм рдореБрдЭреЗ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕реНрд╡рддрдВрддреНрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП PickрдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛ExcludeOmitред

//     TypeScript 3.5
type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>;
 
interface A { 
    propA?: string; 
    propB?: string; 
    propC?: string; 
}
 
type B = Omit<A, 'propA' | 'propC'>; 
const b: B = { propA: 'hi' }; // ;

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирдИ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд╡рд┐рдзрд╛рдПрдБ


рдЬрдм рдирдИ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реБрдЭрд╛рд╡ рд╕рдордиреНрд╡рдп рдХреЗ 4 рдЪрд░рдгреЛрдВ рддрдХ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рднрд╛рд╖рд╛ рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдЪ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдРрд╕реА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рддреБрд░рдВрдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рд╕рдорд░реНрдерди рдХреЛ рдЙрдкрдпреБрдХреНрдд рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдРрд╕реЗ рдЕрд╡рд╕рд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рдЙрд╕рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдЪрд╛рд▓рди рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

рдирдИ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЙрди рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓рдХреНрд╖реНрдп рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ tsconfig.jsonред

тЦН рдЕрд╢рдХреНрдд рдФрд░ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдВ


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕рдЪреНрдЪрд╛рдИ рдФрд░ рдЭреВрда рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред рдЬрдм рд╕рдЪреНрдЪрд╛рдИ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ 6 рдорд╛рди рд╣реИ, рдЬреЛ рд╣рдореЗрд╢рд╛ рдЭреВрдареЗ рд╣реИрдВ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: 0, null, undefined, ┬л┬╗, NaN, рдФрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, falseред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░, рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдореВрд▓реНрдп рд╕рд╣реА рд╣реИ рдпрд╛ рдЧрд▓рдд рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЬрд╛рдВрдЪ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ рдХрд┐ рдореВрд▓реНрдп рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИ nullрдпрд╛ undefinedред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рдорд▓реЗ рдореЗрдВ рдпрджрд┐ рдХреЛрдб 0рдФрд░ undefined: рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ

//  ||     ,  index  0
const getValueOrOne = (x?: number) => index || 1
getValueOrOne(0); // 1 <-- 

рдпрд╣ рдХреЛрдб рдореВрд▓реНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдиреЗ рдкрд░ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, xрд▓рд┐рдЦреЗ рдЧрдП рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░рдХреЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ ред рдЗрд╕ рдХреЛрдб рдХреЛ рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдп рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдкрд░реАрдХреНрд╖рдг рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛редindexindex0

//   ,    
const getValueOrOne = (x?: number) => index !== null && index !== undefined ? : 1
getValueOrOne(0); // 0

рдЕрдм рдХреЛрдб рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЬрд╛рдВрдЪреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореВрд▓реНрдп рдкрд░ рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдСрдкрд░реЗрдЯрд░ nullрдФрд░ undefined(рдпрд╣ рджреЛ рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ - ??) рдЕрдкрдиреЗ рдмрд╛рдПрдВ рднрд╛рдЧ рдореЗрдВ рд╕реНрдерд┐рдд рдореВрд▓реНрдп рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдХреЗ рдРрд╕реА рдЬрд╛рдБрдЪреЛрдВ рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ nullрдФрд░ рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ undefinedред рдЕрдиреНрдпрдерд╛, рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рджрд╛рд╣рд┐рдиреА рдУрд░ рд╣реИред

// !
const getValueOrOne = (x?: number) => index ?? 1
getValueOrOne(0); // 0
getValueOrOne(2); // 2
getValueOrOne(); // 1

Ional рд╡реИрдХрд▓реНрдкрд┐рдХ рдЕрдиреБрдХреНрд░рдо


рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 3.7 рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдПрдХ рдФрд░ рдирдИ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд╡рд┐рдзрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЕрдиреБрдХреНрд░рдореЛрдВ ( ?.) рдХреЗ рдЖрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрдЯрд░ рд╣реИ ред рдореИрдВ рдкрд╣рд▓реА рдмрд╛рд░ рдЧреНрд░реЛрд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдРрд╕реЗ рдСрдкрд░реЗрдЯрд░ рд╕реЗ рдорд┐рд▓рд╛ рдерд╛ред рддрдм рд╕реЗ, рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рднреА рджрд┐рдЦрд╛рдИ рджреЗред рдпрд╣ рдСрдкрд░реЗрдЯрд░ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдирд┐рд░рдВрддрд░ рдЬрд╛рдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдПрдореНрдмреЗрдбреЗрдб рдЧреБрдгреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрджрд┐, рдХрд┐рд╕реА рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдСрдкрд░реЗрдЯрд░ рдПрдХ рдореВрд▓реНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реИ undefined, рддреЛ рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХреЗ рдХреЗрд╡рд▓ рдЗрд╕ рдореВрд▓реНрдп рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛ TypeErrorред

//    
const value = foo && foo.bar && foo.bar.baz;
 
//    
const value = foo?.bar?.baz;

рд╡реИрдХрд▓реНрдкрд┐рдХ рдЕрдиреБрдХреНрд░рдо рдСрдкрд░реЗрдЯрд░ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд рдХрд░рддрд╛ рд╣реИ nullрдФрд░ undefinedрдбреЗрд╡рд▓рдкрд░ рдХреЛ рдФрд░ рднреА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рджреЗрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЪрд░ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рддреЛ рд╡рд╕реНрддреБ рдХреА рдХреБрдЫ рдиреЗрд╕реНрдЯреЗрдб рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдореВрд▓реНрдп, рдпрд╛, рдпрджрд┐ рдРрд╕реА рд╕рдВрдкрддреНрддрд┐ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреБрдЫ рдорд╛рдирдХ рдореВрд▓реНрдпред рдпрд╣рд╛рдБ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

const value = foo?.bar?.baz ?? 'default value';

Fields рдирд┐рдЬреА рд╡рд░реНрдЧ рдХреЗ рдХреНрд╖реЗрддреНрд░


рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдЗрд╕ рднрд╛рд╖рд╛ рдХреЗ рдЖрдЧрдорди рдХреЗ рдмрд╛рдж рд╕реЗ, рдПрдХреНрд╕реЗрд╕ рдореЛрдбрд┐рдлрд╛рдпрд░ рдХреЗ рд╕рд╛рде рдШреЛрд╖рд┐рдд рдирд┐рдЬреА рд╡рд░реНрдЧ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдЕрдкрдиреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ privateред ECMAScript рдорд╛рдирдХ рдореЗрдВ рд╡рд░реНрдЧреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдпрд╣ рдЕрд╡рдзрд╛рд░рдгрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреА рдереАред рд▓реЗрдХрд┐рди рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдпрд╣ рдЕрд╡рдзрд╛рд░рдгрд╛ рдЙрди рддрдВрддреНрд░реЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреА рд╣реИ рдЬреЛ рдХреЛрдб рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдХрдХреНрд╖рд╛ рдХрд╛ рдирд┐рдЬреА рдХреНрд╖реЗрддреНрд░ рдХрдХреНрд╖рд╛ рдХреЗ рд╕реНрд╡рдпрдВ рдХреЗ рддрд░реАрдХреЛрдВ рд╕реЗ рдирд╣реАрдВ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдВрдХрд▓рдХ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдЧрд╛ред рдЕрдм рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рдирд┐рдЬреА рдЧреБрдгреЛрдВ рдФрд░ рддрд░реАрдХреЛрдВ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдлреАрдЪрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЕрднреА рднреА рдореМрдЬреВрдж рд╕реЗ рд╢рдмреНрджрд╛рд░реНрде рдФрд░ рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рджреЛрдиреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реИред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдирд┐рдЬреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдПрдХ рдкрд╣реБрдБрдЪ рд╕рдВрд╢реЛрдзрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ privateред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЙрдирдХреЗ рдирд╛рдореЛрдВ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рдкреНрд░рддреАрдХ рд▓рдЧрд╛рдХрд░ рдЙрдиреНрд╣реЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ #ред

class Fan 
    #on = false
    private name = 'fan';
 
    turnOn() { 
        this.#on = true
    }
   isTurnedOn() { 
        return this.#on; 
    }
}
 
const fan = new Fan(); 
fan.isTurnedOn(); // false  
fan.turnOn(); 
fan.isTurnedOn(); // true
 
fan.on; //  
fan.#on; // 
fan.name; //   ,    JS

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдм рдирд┐рдЬреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдирд┐рдЬреА рддрд░реАрдХреЛрдВ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЕрдиреБрдореЛрджрди рдХреЗ рддреАрд╕рд░реЗ рдЪрд░рдг рдореЗрдВ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдлрд╝реАрд▓реНрдб рдирд╛рдо рдореЗрдВ рд╕рдВрд╢реЛрдзрдХ privateрдФрд░ рд╡рд░реНрдг #рдХрд╛ рдПрдХ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреЛрдиреЛрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдХрд╛рдо рдореЗрдВ рдЖ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЬрд┐рд╕реЗ рдЪреБрдирдирд╛ рд╣реИ рд╡рд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдПрдХ рдкреЙрдбрдХрд╛рд╕реНрдЯ рд╣реИ рдЬреЛ рдирд┐рдЬреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИред

рдХреЛрдб рдХреЗ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ рдкреНрд░рддреАрдХреНрд╖рд┐рдд рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рддрдВрддреНрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдмрд╣реБрдд рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рд╡рд╛рджреЗ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдП, рдлрд┐рд░ - рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди async/awaitрдЬреЛ рдЖрдкрдХреЛ рдХреНрд▓реАрдирд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЬрд╣рд╛рдВ рд╡рд╛рджреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдирд╣реАрдВ, async/awaitрдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд╣рд░ рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╡рд┐рдзрд┐ рдХреЙрд▓ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЙрдбреНрдпреВрд▓ рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХреЗ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдлрд╝рдВрдХреНрд╢рди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (IIFE, рддрддреНрдХрд╛рд▓ рдЗрдирд╡реЙрдЗрд╕ рдлрдВрдХреНрд╢рди рдПрдХреНрд╕рдкреНрд░реЗрд╢рди) рдирд╛рдордХ рдПрдХ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЕрдВрджрд░ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

(async () => { 
    const response = await fetch('https://api.github.com/users/sitepen'); 
    const data = await response.json(); 
    console.log(`Check out the blog at ${data.blog}`); 
})();

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдм awaitрдХреЛрдб рдХреЗ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдШреЛрд╖рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рд╣рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ asyncред рдпрд╣ рдХреЙрдореНрдкреИрдХреНрдЯ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред рд╕рдЪ рд╣реИ, awaitрдХреЛрдб рдХреЗ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреА рдЖрд▓реЛрдЪрдирд╛ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рд╡реЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рдзреАрдорд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдкреИрджрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореЙрдбреНрдпреВрд▓ рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рдзреАрдорд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдСрдкрд░реЗрд╢рди рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рднреА рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред

const response = await fetch('https://api.github.com/users/sitepen'); 
const data = await response.json();
 
export default { ...data };

рдПрдиреНрд╣рд╛рдВрд╕реНрдб рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдпреЛрдЧ рдкрд░реНрдпрд╛рд╡рд░рдг


рдЗрд╕реЗ рдПрдХ рдирдпрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝реАрдЪрд░ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╣рдо рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЯреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд▓реЗрдЧреНрд░рд╛рдЙрдВрдб рдХреЛ рдХрд┐рд╕реА рднреА рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рдХреА рдЬрд▓реНрджреА рд╕реЗ рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рднрд╛рд╡реА рдЯреВрд▓ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпреЗ рдирд┐рд░реНрдорд╛рдг рдЪрд╛рд▓реВ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд▓реЗрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдм рдпрд╣ рд╡рд╛рддрд╛рд╡рд░рдг рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдмреАрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╕рд╣рд┐рдд) рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдХрдИ рдЙрджрд╛рд╣рд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЖрд░рдВрдн рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗред

рд╕рд╛рд░рд╛рдВрд╢


рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдмреЗрд╣рддрд░ рдФрд░ рдЕрдзрд┐рдХ рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╣рд╛рдпрдХ рдЙрдкрдХрд░рдг рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдФрд░ рдирд╛рдо рдмрджрд▓рдиреЗ рд╡рд╛рд▓реА рд╕рдВрд╕реНрдерд╛рдПрдВ, рдЬреЛ рд╕рд╛рдзрд╛рд░рдг рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИрдВред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рдЧрд╛рддрд╛рд░ рдирдП рддрдВрддреНрд░реЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬреИрд╕реЗ OmitрдФрд░ as constред рднрд╛рд╖рд╛ рдореЗрдВ, рдХреЛрдИ рдЬрдЯрд┐рд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рдорд░реНрдерди рдореЗрдВ рдирд┐рд░рдВрддрд░ рд╕реБрдзрд╛рд░ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд▓реНрджреА рд╕реЗ рдирд╡реАрдирддрдо рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдХрдИ рд▓реЛрдЧ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪреБрдирддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдПрдХ рдЙрдкрдХрд░рдг, рднрд╛рд╖рд╛ рдФрд░ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддреЗ рд╣реИрдВред

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдЖрдкрдХреЛ рдХреМрди рд╕реА рдирдИ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрддреА рд╣реИрдВ?


All Articles