рд╣рдордиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЕрдкрдиреЗ
MemSQL рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдлреНрд▓реЛ рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреА 30,000 рд▓рд╛рдЗрдиреЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХреА рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд╕рдордЭрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╣рдордиреЗ рдХреЛрдб рдЖрдзрд╛рд░ рдХреНрдпреЛрдВ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛, рдпрд╣ рдХреИрд╕реЗ рд╣реБрдЖ рдФрд░ рдХреНрдпрд╛ рд╣реБрдЖред
рдЕрд╕реНрд╡реАрдХрд░рдг: рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп рдлреНрд▓реЛ рдХреА рдЖрд▓реЛрдЪрдирд╛ рдХрд░рдирд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рд╕реЛрдЪрддрд╛ рд╣реВрдВ рдХрд┐ рджреЛрдиреЛрдВ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪреЗрдХрд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдореБрджрд╛рдп рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЬрдЧрд╣ рд╣реИред рдЕрдВрдд рдореЗрдВ, рд╣рд░ рдХреЛрдИ рдЪреБрдиреЗрдЧрд╛ рдХрд┐ рдЙрд╕реЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХреНрдпрд╛ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдкреВрд░реА рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд▓реЗрдЦ рдЗрд╕ рдкрд╕рдВрдж рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛редрд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЖрдкрдХреЛ рдЕрджреНрдпрддрд┐рдд рдХрд░ рджреВрдВрдЧрд╛ред рд╣рдо
рдореЗрдордХреНрдпреВрд╕реА рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рдФрд░ рдХрдордЬреЛрд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЖрдо рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдереИрддрд┐рдХ рдФрд░ рдордЬрдмреВрдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рдмрдбрд╝реЗ рдкреНрд░рд╢рдВрд╕рдХ
рд╣реИрдВ ред
рдЖрдо рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднрд╛рд╖рдг:
- рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЯрд╛рдЗрдк рдХрд░реЗрдВ рдХрд┐ рдХреЛрдб рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХрд╛ рдирд┐рд╣рд┐рддрд╛рд░реНрде рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдорд┐рд▓рд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- рдЗрд╕ рддрд░рд╣ рдХреА рддреБрдЪреНрдЫ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд╛ рд╕рдордп рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд╡реНрдпрддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ (рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рд╕реЗ рдкреИрдХреЗрдЬ рдХрд╛ рдЖрдХрд╛рд░ рднреА рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИ)ред
- рд╕рдВрдкрд╛рджрдХ / рдЖрдИрдбреАрдИ рдПрдХреАрдХрд░рдг рдХреА рдХрдореА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдереИрддрд┐рдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдЬрдВрдк рдЯреВ рдбреЗрдлрд┐рдирд┐рд╢рди рдлрд╝рдВрдХреНрд╢рди, рдореИрдХреЗрдирд┐рдХрд▓ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдФрд░ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред
- рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдкрд╣рд▓реЗ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдХреЛрдб рдореВрд▓ рд░реВрдк рд╕реЗ "рдЦреБрдж рд▓рд┐рдЦрддрд╛ рд╣реИ"ред
рдпреЗ рдХреЗрд╡рд▓ рд╕реНрдереИрддрд┐рдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рдХреБрдЫ рд▓рд╛рдн рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ
рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдлреНрд▓реЛ рдкрд░ рдПрдХ
рд▓реЗрдЦ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛
рдЧрдпрд╛ рд╣реИ ред
2016 рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╣рдордиреЗ рдЕрдкрдиреА рдЖрдВрддрд░рд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
tcomb рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ (рдЕрд╕реНрд╡реАрдХрд░рдг: рдореИрдВрдиреЗ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рд╕реМрджрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛)ред рдпрджреНрдпрдкрд┐ рд░рдирдЯрд╛рдЗрдо рдЬрд╛рдБрдЪ рдХрднреА-рдХрднреА рдЙрдкрдпреЛрдЧреА рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдерд┐рд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рд╕рднреА рд▓рд╛рдн рднреА рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреА рд╣реИ (рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рд╕реНрдЯреИрдЯрд┐рдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдФрд░ рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдХрд╛ рд╕рдВрдпреЛрдЬрди рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ,
io-ts рдЖрдкрдХреЛ tcomb рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рдХрднреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ )ред рдЗрд╕реЗ рд╕рдордЭрддреЗ рд╣реБрдП, рд╣рдордиреЗ рдлреНрд▓реЛ рдХреЛ рдПрдХ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рд╣рдордиреЗ 2016 рдореЗрдВ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛ред рдЙрд╕ рд╕рдордп, рдлреНрд▓реЛ рдПрдХ рд╢рд╛рдирджрд╛рд░ рд╡рд┐рдХрд▓реНрдк рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рдерд╛:
- рдлреЗрд╕рдмреБрдХ рд╕реЗ рд╕рдорд░реНрдерди, рдЬрд┐рд╕рдиреЗ рд░рд┐рдПрдХреНрдЯ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕рдореБрджрд╛рдп рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрджреНрднреБрдд рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ (рдЙрдиреНрд╣реЛрдВрдиреЗ рдлреНрд▓реЛ рдХреЗ рд╕рд╛рде рд░рд┐рдПрдХреНрдЯ рднреА рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рд╣реИ)ред
- рдореЛрдЯреЗ рддреМрд░ рдкрд░ рд╡рд╣реА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдХрд╛рд╕ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ред Tsc (рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░) рдХреЗ рд▓рд┐рдП рдмреИрдмреЗрд▓ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдбрд░рд╛рд╡рдирд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рджреВрд╕рд░реЗ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рд▓рдЪреАрд▓рд╛рдкрди рдЦреЛ рджрд┐рдпрд╛ рдерд╛ (рдЬрд╛рд╣рд┐рд░ рд╣реИ, рддрдм рд╕реЗ рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рдЧрдИ рд╣реИ)ред
- рдкреВрд░реЗ рдХреЛрдбрдмреЗрд╕ рдХреЛ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (рд╣рдо рдСрд▓-рдЗрди рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ), рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдлрд╝реНрд▓реЛ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЛрдиреЛрдВ рдЕрдм рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
- рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдЙрд╕ рд╕рдордп) рдореЗрдВ рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЕрднрд╛рд╡ рдерд╛ рдЬреЛ рдЕрдм рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдпреЗ рд▓реБрдХрдЕрдк рдкреНрд░рдХрд╛рд░ , рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдЖрджрд┐ рд╣реИрдВред
рдЬрдм рд╣рдордиреЗ 2017 рдХреЗ рдЕрдВрдд рдореЗрдВ
рдореЗрдордХреНрдпреВрдПрд╕ рд╕реНрдЯреВрдбрд┐рдпреЛ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рд╣рдо рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рдереЗ (рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ: рджреЛрдиреЛрдВ рдлреНрд░рдВрдЯрдПрдВрдб рдФрд░ рдмреИрдХрдПрдВрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ)ред рд╣рдордиреЗ рдлреНрд▓реЛ рдХреЛ рдПрдХ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЕрддреАрдд рдореЗрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдзреНрдпрд╛рди
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде рдмреИрдмрд▓ 7 рдкрд░ рдЧрдпрд╛ ред рдЗрд╕ рд░рд┐рд▓реАрдЬрд╝ рдХрд╛ рдорддрд▓рдм рдерд╛ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдм рдкреВрд░реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдмреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рд╣рдо
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЯрд╛рдЗрдк рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ
рд╣реИрдВ , рди рдХрд┐ рдкреВрд░реНрдгрд░реВрдкреЗрдг "рднрд╛рд╖рд╛" рдХреЗ рд░реВрдк рдореЗрдВред
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдХреЛрдб рдЬрдирд░реЗрдЯрд░ рд╕реЗ рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рд╕реНрдерд┐рд░ (рдФрд░ рдордЬрдмреВрдд) рддрд░реАрдХреЗ рдХрд╛ рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрдВрджрд░ рддрд░реАрдХрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐:
- рд╣рдо рдХреЛрдб рдФрд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЯрд╛рдЗрдк-рдЪреЗрдХрд┐рдВрдЧ рд╕реНрдЯреЙрдк рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдЧрддрд┐ рджреЗрддрд╛ рд╣реИ: рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЯрд╛рдЗрдк-рдЪреЗрдХрд┐рдВрдЧ рдзреАрдорд╛ рд╣реИ, рддреЛ рдХреЛрдб рдЕрднреА рднреА рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ (рдпрджрд┐ рдЖрдк рдмреИрдмрд▓ рдХреЗ рд╕рд╛рде tsc рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред
- Babel рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрдирд░реЗрдЯрд░ рдХреЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмреИрдмрд▓ рдЖрдкрдХреЛ рд╕рдорд░реНрдерд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рд▓рд┐рдП рдХреЛрдб рдЬрд╛рд░реА рдХрд░реЗрдЧрд╛ред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдп рд╣реИ рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред
- рдореБрдЭреЗ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд╕рдВрдж рд╣реИ (рд╕реНрдереИрддрд┐рдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреА рдХрдореА рдХреЛ рдЫреЛрдбрд╝рдХрд░), рдФрд░ рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдХрд┐рддрдирд╛ рдЕрд╕реНрддрд┐рддреНрд╡ рд╣реЛрдЧрд╛, рдЬрдмрдХрд┐ рдореИрдВ рдХрдИ рд╕рд╛рд▓реЛрдВ рдХреЗ рдЗрдореНрдорд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдФрд░ "рд╕реЛрдЪрдирд╛" рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ "рдлреНрд▓реЛ рдореЗрдВ рд▓рд┐рдЦреЗрдВ" рдпрд╛ "рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ" рдХреЗ рдмрдЬрд╛рдп "рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ" рдпрд╛ "рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╣рдореЗрд╢рд╛ рдЙрдиреНрд╣реЗрдВ рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реВрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдирд╣реАрдВ)ред
рдмреЗрд╢рдХ, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдХреБрдЫ рдиреБрдХрд╕рд╛рди рд╣реИрдВ:
- рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк-рдЖрдзрд╛рд░рд┐рдд рдЕрдиреБрдХреВрд▓рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╣рдо рдЙрд╕ рдЕрд╡рд╕рд░ рдХреЛ рдЦреЛ рджреЗрддреЗ рд╣реИрдВред
- рдЙрдкрдХрд░рдг рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХрдордЬреЛрд░ рддрд░реНрдХ рд╣реИ: рдмреИрдмрд▓ рдФрд░ рдлреНрд▓реЛ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣рдореЗрдВ рдХрднреА рдирд┐рд░рд╛рд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлреНрд▓реЛ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ
рдореИрдВрдиреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдореБрджрд╛рдп рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрдврд╝рддреА рд░реБрдЪрд┐ рдХреЛ рджреЗрдЦрд╛: рджреЛрдиреЛрдВ рдСрдирд▓рд╛рдЗрди рдФрд░ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдмреАрдЪред рдЗрд╕рд▓рд┐рдП, рдЬреИрд╕реЗ рд╣реА рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдмрд╛рдмреЗрд▓ 7 рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдореИрдВрдиреЗ рддреБрд░рдВрдд рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрдХреНрд░рдордг рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ рдлреНрд▓реЛ рдХреЗ рдХреБрдЫ рдиреБрдХрд╕рд╛рдиреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛:
- рд╕рдВрдкрд╛рджрдХ / рдЖрдИрдбреАрдИ рдПрдХреАрдХрд░рдг рдХреА рдирд┐рдореНрди рдЧреБрдгрд╡рддреНрддрд╛ (рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ)ред рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдПрдХреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдлреЗрд╕рдмреБрдХ рдХрд╛ рдЕрдкрдирд╛ IDE Nuclide, рдкрд╣рд▓реЗ рд╕реЗ рдкреБрд░рд╛рдирд╛ рд╣реИред
- рдПрдХ рдЫреЛрдЯрд╛ рд╕рдореБрджрд╛рдп, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдо рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ, рдФрд░ рд╡реЗ рдирд┐рдореНрди рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рд╣реИрдВ (рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдореЗрдВ 19 682 рдЧрд┐рдЯрд╣рдм рд╕рд┐рддрд╛рд░реЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рд╡рд╛рд╣-рдЯрд╛рдЗрдк рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдХреЗрд╡рд▓ 3070 рд╣реИрдВ)ред
- рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рдХрд╛рд╕ рдпреЛрдЬрдирд╛ рдХрд╛ рдЕрднрд╛рд╡ рдФрд░ рдлрд╝реЗрд╕рдмреБрдХ рдФрд░ рд╕рдореБрджрд╛рдп рдкрд░ рдлрд╝реНрд▓реЛ рдЯреАрдо рдХреЗ рдмреАрдЪ рдЦрд░рд╛рдм рд╕рдВрдкрд░реНрдХред рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдлреЗрд╕рдмреБрдХ рдХрд░реНрдордЪрд╛рд░реА рдХреА рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
- рдЙрдЪреНрдЪ рд╕реНрдореГрддрд┐ рдЦрдкрдд рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рд▓реАрдХ - рд╣рдорд╛рд░реЗ рдХреБрдЫ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП, рдлреНрд▓реЛ рдХрднреА-рдХрднреА рд▓рдЧрднрдЧ 10 рдЬреАрдмреА рд░реИрдо рддрдХ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред
рдмреЗрд╢рдХ, рдЖрдкрдХреЛ рдпрд╣ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣рдореЗрдВ рдХреИрд╕реЗ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдЬрдЯрд┐рд▓ рдкреНрд░рд╢реНрди рд╣реИ: рд╡рд┐рд╖рдп рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдЧрд╣рди рдЕрдзреНрдпрдпрди рд╢рд╛рдорд┐рд▓ рдерд╛, рдЬрд┐рд╕рдиреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХреА рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдлреНрд▓реЛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИред рддрдм рдореИрдВрдиреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрдмреНрд▓рд┐рдХ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдкреНрд▓рд╛рди рдХреА рдЦреЛрдЬ рдХреА, рдФрд░ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкрд╕рдВрдж рдЖрдпрд╛ рдЬреЛ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдпреЛрдЬрдирд╛рдмрджреНрдз рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯрд╛рдЗрдк рддрд░реНрдХреЛрдВ рдХрд╛ рдЖрдВрд╢рд┐рдХ рд╡реНрдпреБрддреНрдкрддреНрддрд┐ рдЬреЛ рд╣рдо рдлреНрд▓реЛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рдереЗ)ред
рдХреЛрдб рдХреЗ 30 рд╣рдЬрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдлреНрд▓реЛ рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ
рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ 6 рд╕реЗ 7. рд╕реЗ рдмрд╛рдмреЗрд▓ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рд╕рд░рд▓ рдХрд╛рд░реНрдп рдореЗрдВ 16 рдорд╛рдирд╡-рдШрдВрдЯреЗ рд▓рдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдЙрд╕реА рд╕рдордп рд╡реЗрдмрдкреИрдХ 3 рд╕реЗ 4 рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдерд╛ред рд╣рдорд╛рд░реЗ рдХреЛрдб рдореЗрдВ рдХреБрдЫ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдХрд╛рд░реНрдп рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддреА рд╣реИрдВред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╡рд┐рд╢рд╛рд▓ рдмрд╣реБрдордд рдореЗрдВ рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдирд╣реАрдВ рд╣реЛрдВрдЧреАред
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдирдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реАрд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдмреИрдмрд▓ рдлреНрд▓реЛ рдкреНрд░реАрд╕реЗрдЯ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рдкрд╣рд▓реА рдмрд╛рд░ рдлреНрд▓реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд▓рд┐рдЦреЗ рдЧрдП рд╣рдорд╛рд░реЗ рд╕рднреА рд╕реНрд░реЛрддреЛрдВ рдкрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ред рдкрд░рд┐рдгрд╛рдо
8245 рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ (tsc CLI рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рддрдм рддрдХ рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╕рднреА рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдареАрдХ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ)ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ рдиреЗ рд╣рдореЗрдВ (рдмрд╣реБрдд) рднрдпрднреАрдд рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЬрд▓реНрджреА рд╕реЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ .js рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рдЕрдзрд┐рдХрд╛рдВрд╢ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдереАрдВред рд╡рд┐рд╖рдп рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ .ts рдпрд╛ .tsx (рдпрджрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ JSX рд╣реИ) рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдореБрдЭреЗ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЕрд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИред JSX рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ / рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдмрд╕ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЛ .tsx рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ред
рд▓рдЧрднрдЧ 4,000 рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд░рд╣рддреА рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢
рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдпрд╛рдд рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдЬреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдмрд╕ рдЖрдпрд╛рдд рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкрджрдирд╛рдо рдореЗрдВ рдЕрдВрддрд░ (
{||}
рдмрдЬрд╛рдп
{}
)ред рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ, рд╣рдордиреЗ 414 рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛:
- рдЕрд╕реНрддрд┐рддреНрд╡рдЧрдд рдкреНрд░рдХрд╛рд░ , рдЬрд┐рд╕реЗ рд╣рдо рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реНрдХреЛрдВ рдХреЛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдХреЛ рдЯрд╛рдЗрдк рддрд░реНрдХ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рддрд░реНрдХ рдпрд╛ рдЕрдЬреНрдЮрд╛рдд рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреБрдЫ рддрд░реНрдХ рдорд╣рддреНрд╡рд╣реАрди рд╣реИрдВред
- рдкреНрд░рдХрд╛рд░ $ рдХреБрдВрдЬреА рдФрд░ рдЕрдиреНрдп рдЙрдиреНрдирдд рдкреНрд░рд╡рд╛рд╣ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
$ShapeтАЬтАЭ
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ PartialтАЬтАЭ
рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ) рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИред
рд╕рднреА рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, tsc рдиреЗ рдЕрдВрдд рдореЗрдВ рдХрд╣рд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдХреЛрдб рдмреЗрд╕ рдореЗрдВ рдХрд┐рддрдиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдХреЗрд╡рд▓ 1300 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИрдВред рдЕрдм рд╣рдореЗрдВ рдпрд╣ рддрдп рдХрд░рдирд╛ рдерд╛ рдХрд┐ рдЖрдЧреЗ рдмрдврд╝рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЖрдЦрд┐рд░рдХрд╛рд░, рдЕрдЧрд░ рдкреНрд░рд╡рд╛рд╕ рдореЗрдВ рд╕рдкреНрддрд╛рд╣ рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдлреНрд▓реЛ рдкрд░ рд░рд╣рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдордиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рдХреЛрдб рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЬреАрдирд┐рдпрд░ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕рдкреНрддрд╛рд╣ рд╕реЗ рдХрдо рдХрд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ рдХрд╛рдлреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреНрд░рд╡рд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдореБрдЭреЗ рдЗрд╕ рдХреЛрдб рдмреЗрд╕ рдкрд░ рд╕рднреА рдХрд╛рдо рд░реЛрдХрдирд╛ рдерд╛ред рдлрд┐рд░ рднреА, рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЖрдк рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдореМрдЬреВрджрд╛ рдХреЛрдб рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд╕реИрдХрдбрд╝реЛрдВ рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред
рдХрд┐рд╕ рддрд░рд╣ рдХреА рдЧрд▓рддрд┐рдпрд╛рдВ?
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдлреНрд▓реЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХрдИ рдорд╛рдпрдиреЛрдВ рдореЗрдВред рддреЛ, рдлреНрд▓реЛ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдЦреНрдд рд╣реИ, рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ - рджреВрд╕рд░реЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВред рджреЛ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреА рдПрдХ рдЧрд╣рд░реА рддреБрд▓рдирд╛ рдмрд╣реБрдд рд▓рдВрдмреА рд╣реЛрдЧреА, рдЗрд╕рд▓рд┐рдП рдмрд╕ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред
рдиреЛрдЯ:
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХреЗ рд╕рднреА рд▓рд┐рдВрдХ "рд╕рдЦреНрдд" рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдорд╛рдирддреЗ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЬрдм рдЖрдк рдПрдХ рд▓рд┐рдВрдХ рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпреЗ рд╡рд┐рдХрд▓реНрдк URL рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдЖрд▓реЗрдЦ рд╕реЗ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХреЗ рдХрд┐рд╕реА рднреА рд▓рд┐рдВрдХ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
invariant.js
рд╣рдорд╛рд░реЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ
invariant
рдлрд╝рдВрдХреНрд╢рди рдмрд╣реБрдд рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдХрд▓рд╛ред рдмрд╕ рдкреНрд░рд▓реЗрдЦрди рдЙрджреНрдзреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
var invariant = require('invariant'); invariant(someTruthyVal, 'This will not throw');
рд╡рд┐рдЪрд╛рд░ рд╕реНрдкрд╖реНрдЯ рд╣реИ: рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдХрд┐рд╕реА рд╢рд░реНрдд рдкрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐
рдЗрд╕реЗ рдлреНрд▓реЛ рдкрд░ рдХреИрд╕реЗ
рд▓рд╛рдЧреВ рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ :
type Maybe<T> = T | void; function invariant(condition: boolean, message: string) { if (!condition) { throw new Error(message); } } function f(x: Maybe<number>, c: number) { if (c > 0) { invariant(x !== undefined, "When c is positive, x should never be undefined"); (x + 1);
рдЕрдм
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕рдорд╛рди рд╕реНрдирд┐рдкреЗрдЯ рд▓реЛрдб рдХрд░реЗрдВ ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд▓рд┐рдВрдХ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдордЭ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИ рдХрд┐
x
рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдХреЗ рдмрд╛рдж
undefined
рдирд╣реАрдВ рд░рд╣рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ
рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛ рд╣реИ - рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдЕрднреА рдХреЗ рд▓рд┐рдП) рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╣рдорд╛рд░реЗ рдХреЛрдб рдмреЗрд╕ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЗрдирд╡реЗрд░рд┐рдПрдВрдЯ рдЗрдВрд╕реНрдЯреЗрдВрд╕ (150 рд╕реЗ рдЕрдзрд┐рдХ рдЯреБрдХрдбрд╝реЗ) рдХреЛ рджреВрд╕рд░реЗ рдХреЛрдб рд╕реЗ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рддреБрд░рдВрдд рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ:
type Maybe<T> = T | void; function f(x: Maybe<number>, c: number) { if (c > 0) { if (x === undefined) { throw new Error("When c is positive, x should never be undefined"); } (x + 1);
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреБрд▓рдирд╛рддреНрдордХ рдирд╣реАрдВ
invariant
, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХреЛрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИред
$ ExpectError рдмрдирд╛рдо @ ts-рдЕрдирджреЗрдЦрд╛
рдлреНрд▓реЛ рдореЗрдВ
@ts-ignore
рд╕рдорд╛рди рдПрдХ рдмрд╣реБрдд рд╣реА рд░реЛрдЪрдХ рдлрдВрдХреНрд╢рди рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдпрд╣ рдПрдХ рдПрд░рд░ рдлреЗрдВрдХрддрд╛ рд╣реИ рдЕрдЧрд░ рдЕрдЧрд▓реА рд▓рд╛рдЗрди рдПрд░рд░
рдирд╣реАрдВ рд╣реИ ред рдпрд╣ "рдЯрд╛рдЗрдк рдЯреЗрд╕реНрдЯ" рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдк рдЯрд╛рдЗрдкрд┐рдВрдЧ (рдЪрд╛рд╣реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╛ рдлрд╝реНрд▓реЛ) рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкрд╛рдПред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдРрд╕рд╛ рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдиреЗ рдХреБрдЫ рдореВрд▓реНрдп рдЦреЛ рджрд┐рдпрд╛ рд╣реИред рдореИрдВ
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ
рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ
рд╣реВрдВ ред
рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреА рдЕрдиреБрдорд╛рди
рдЕрдХреНрд╕рд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлреНрд▓реЛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рдХреЛрдб рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ:
type Leaf = { host: string; port: number; type: "LEAF"; }; type Aggregator = { host: string; port: number; type: "AGGREGATOR"; } type MemsqlNode = Leaf | Aggregator; function f(leaves: Array<Leaf>, aggregators: Array<Aggregator>): Array<MemsqlNode> {
рдкреНрд░рд╡рд╛рд╣
infers рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ редconcat (рдПрдЧреНрд░реАрдЧреЗрдЯрд░реНрд╕) Array рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░реЗрдВ <рдкрддреНрддреА | рдПрдЧреНрд░реАрдЧреЗрдЯрд░> , рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ
Array<MemsqlNode>
рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд╣рд╛рдВ рдлреНрд▓реЛ рдереЛрдбрд╝рд╛ рд╣реЛрд╢рд┐рдпрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдереЛрдбрд╝реА рдорджрдж рдХреА рдЬрд░реВрд░рдд рд╣реИ: рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЬреЛрд░ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЦрддрд░рдирд╛рдХ рд╣реИ рдФрд░ рдЗрд╕реЗ рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдФрдкрдЪрд╛рд░рд┐рдХ рд╕рдмреВрдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдлреНрд▓реЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлреНрд▓реЛ рд╕реНрддрд░ рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рднрд╛рд╖рд╛ рдмрд╣реБрдд рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИ, рдФрд░ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХрдИ рд╣рд╛рд▓рд┐рдпрд╛ рд╕реБрдзрд╛рд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред рд╣рдорд╛рд░реЗ рдХреЛрдб рдореЗрдВ рдХрдИ рд╕реНрдерд╛рдиреЛрдВ рдкрд░, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдПрдиреЛрдЯреЗрд╢рди рдпрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрднрд┐рдХрдерди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдереЛрдбрд╝реА рдорджрдж рдХрд░рдиреА рдереА, рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╣рдордиреЗ
рдмрд╛рдж рдореЗрдВ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛
рдмрдЪрд╛ рдерд╛ )ред рдЖрдЗрдП
рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ (рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдРрд╕реА 200 рд╕реЗ рдЕрдзрд┐рдХ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдереАрдВ):
type Player = { name: string; age: number; position: "STRIKER" | "GOALKEEPER", }; type F = () => Promise<Array<Player>>; const f1: F = () => { return Promise.all([ { name: "David Gomes", age: 23, position: "GOALKEEPER", }, { name: "Cristiano Ronaldo", age: 33, position: "STRIKER", } ]); };
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдкрдХреЛ рдЗрд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЛ
{ name: "David Gomes", age: 23, type: "GOALKEEPER" }
рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ
Player
рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧрд╛ (рд╕рдЯреАрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП рд╕реИрдВрдбрдмреЙрдХреНрд╕ рджреЗрдЦреЗрдВ)ред рдпрд╣ рдПрдХ рдФрд░ рдорд╛рдорд▓рд╛ рд╣реИ рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд╣реБрдд рд╕реНрдорд╛рд░реНрдЯ рдирд╣реАрдВ рд▓рдЧрддрд╛ (рдХрдо рд╕реЗ рдХрдо рдлреНрд▓реЛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдЬреЛ рдЗрд╕ рдХреЛрдб рдХреЛ рд╕рдордЭрддрд╛ рд╣реИ)ред
рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
"STRIKER"
рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдордЭреЗ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рд╡реИрдз рд╕рдВрдХрд░рдг рд╣реИ "STRIKER" | "GOALKEEPER"
"STRIKER" | "GOALKEEPER"
редPlayer
рд░реВрдк рдореЗрдВ рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВред- рдпрд╛ рдХреНрдпрд╛ рдореИрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдорд╛рдирддрд╛ рд╣реВрдВ: Promise.all
Promise.all<Player>(...)
рд▓рд┐рдЦрдХрд░ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрдпрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдорджрдж рдХрд░реЗрдВред
рдпрд╣рд╛рдВ рдПрдХ
рдФрд░ рдЙрджрд╛рд╣рд░рдг (рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ) рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ
рдлреНрд▓реЛ рдлрд┐рд░ рд╕реЗ рдЯрд╛рдЗрдк рдЗрдВрдлрд╝реЗрдХреНрд╢рди рдореЗрдВ
рдмреЗрд╣рддрд░ рд╣реИ :
type Connection = { id: number }; declare function getConnection(): Connection; function resolveConnection() { return new Promise(resolve => { return resolve(getConnection()); }) } resolveConnection().then(conn => {
рдПрдХ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд▓реЗрдХрд┐рди рджрд┐рд▓рдЪрд╕реНрдк рдЙрджрд╛рд╣рд░рдг: рдлреНрд▓реЛ рдХреЛ
Array<T>.pop()
рдЯрд╛рдЗрдк
T
рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕реЗ
T | void
рдорд╛рдирддрд╛ рд╣реИ
T | void
T | void
ред рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдПрдХ рдмрд┐рдВрджреБ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рддрддреНрд╡ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЛ рджреЛрдЧреБрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ (рдпрджрд┐ рд╕рд░рдгреА рдЦрд╛рд▓реА рд╣реИ, рддреЛ
Array.pop
undefined
рджреЗрддрд╛ рд╣реИ)ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрдИ рдЕрдиреНрдп рдЫреЛрдЯреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдЬрд╣рд╛рдВ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлреНрд▓реЛ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред
рддреГрддреАрдп-рдкрдХреНрд╖ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ
рдмреЗрд╢рдХ, рдХрд┐рд╕реА рднреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп, рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣реЛрдВрдЧреАред рдЙрдиреНрд╣реЗрдВ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рдЖрдк рд╕реНрдерд┐рд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рдЦреЛ рджреЗрдВрдЧреЗ (рдЬреИрд╕рд╛ рдХрд┐ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ)ред
Npm рд╕реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдлреНрд▓реЛ рдпрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯрд╛рдЗрдк рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдпрд╛ рдмрд┐рдирд╛ рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддреА рд╣реИрдВред рдмрд╣реБрдд рдмрд╛рд░ (рдЫреЛрдЯреЗ) рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдЖрдкреВрд░реНрддрд┐ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рд╕рдореБрджрд╛рдп рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдЙрдзрд╛рд░ рд▓реЗрдирд╛ рд╣реЛрдЧрд╛ред рдлрд╝реНрд▓реЛ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЛрдиреЛрдВ рддреГрддреАрдп-рдкрдХреНрд╖ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдкрд░рд┐рднрд╛рд╖рд╛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ: рдпреЗ
рдкреНрд░рд╡рд╛рд╣-рдЯрд╛рдЗрдк рдФрд░
рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд╣реИрдВ ред
рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд рддреМрд░ рдкрд░ рд╣рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрд╕рдВрдж рдЖрдпрд╛ред рдлреНрд▓реЛ-рдЯрд╛рдЗрдк рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдПрд▓рдЖрдИ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ Typed npm CL рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ
@types/package-name
рднреЗрдЬрдХрд░ npm CLI рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЬреЛрдбрд╝рддреА рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╣реА рд╢рд╛рдВрдд рд╣реИ рдФрд░ рд╣рдорд╛рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдЗрдирдкреБрдЯ рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ (рдЬреЗрд╕реНрдЯ, рд░рд┐рдПрдХреНрд╢рди, рд▓реЙрд╢, рд░рд┐рдПрдХреНрд╢рди-рд░рд┐рдбрдХреНрд╕, рдпреЗ рдХреБрдЫ рд╣реА рд╣реИрдВ)ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рднрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╕рдордп рдерд╛ (рдпрд╣ рдордд рд╕реЛрдЪреЛ рдХрд┐ рдлреНрд▓реЛ рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдкреЛрд░реНрдЯ рдХрд░рддреЗ рд╕рдордп рдЯрд╛рдЗрдк рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рдмрд░рд╛рдмрд░ рд╣реИрдВ)ред рдореИрдВрдиреЗ
рдкрд╣рд▓реЗ рд╣реА рдХреБрдЫ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗ рд╣реИрдВ , рдФрд░ рдХрд╣реАрдВ рднреА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред рдмрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреНрд▓реЛрди рдХрд░реЗрдВ, рдЯрд╛рдЗрдк рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝реЗрдВ - рдФрд░ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЧрд┐рдлреНрдЯрдмреЙрдЯ рдмреЙрдЯ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдкрд╛рджрд┐рдд рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА 7 рджрд┐рдиреЛрдВ рдХреЗ рднреАрддрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЕрдиреБрд░рдХреНрд╖рдХ рдХреЛ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЦреНрдп рд╢рд╛рдЦрд╛ рдХреЗ рд╕рд╛рде рд╡рд┐рд▓рдп рдХреЗ рдмрд╛рдж, рдПрдирдкреАрдПрдо рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдкреИрдХреЗрдЬ рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ @ рдкреНрд░рдХрд╛рд░ / redux-form рдкреИрдХреЗрдЬ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдерд╛, рддреЛ рд╕рдВрд╕реНрдХрд░рдг 4.рек.резрек рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ npm рдкрд░ рднреЗрдЬрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП рдирдИ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл package.json рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЛ рдЕрдкрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╣рдореЗрд╢рд╛ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛
рдХрд┐ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рд╡рд░реНрдгрд┐рдд
рд╣реИ ред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдмрдбрд╝реЗ рдФрд░ рдЕрдзрд┐рдХ рд╕рдореГрджреНрдз рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдореБрджрд╛рдп рдХреЗ рдХрд╛рд░рдг рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдмреЗрд╣рддрд░ рд╣реЛрддреА рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж
, рд╣рдорд╛рд░реЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХрд╡рд░реЗрдЬ 88% рд╕реЗ рдмрдврд╝рдХрд░ 96% рд╣реЛ рдЧрдпрд╛ , рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдмреЗрд╣рддрд░ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдХрд╛рд░рдг,
any
рдкреНрд░рдХрд╛рд░ рд╕реЗ рдХрдоред
рд▓рд╛рдЗрдирд┐рдВрдЧ рдФрд░ рдкрд░реАрдХреНрд╖рдг
- рд╣рдордиреЗ рдПрд╕реНрд▓рд┐рдВрдЯ рд╕реЗ tslint рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ (рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрд╕реНрд▓рд┐рдВрдЯ рдХреЗ рд╕рд╛рде, рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдХрдард┐рди рд▓рдЧ рд░рд╣рд╛ рдерд╛)ред
- рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░реАрдХреНрд╖рдг ts-jest рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рдирд╣реАрдВ рд╣реИрдВ (рдпрджрд┐ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЙрдиреНрд╣реЗрдВ .js рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ)ред
рд╕рднреА рдЯрд╛рдЗрдкрд┐рдВрдЧ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХреНрдпрд╛ рд╣реБрдЖ?
40 рдорд╛рдирд╡-рдШрдВрдЯреЗ рдХреЗ рдХрд╛рдо рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдВрддрд┐рдо рдЯрд╛рдЗрдкрд┐рдВрдЧ рддреНрд░реБрдЯрд┐ рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдП, рдЗрд╕реЗ
@ts-ignore
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╕реНрдердЧрд┐рдд рдХрд░ рджрд┐рдпрд╛ред
рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдФрд░ рдХреБрдЫ рдмрдЧреНрд╕ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж (рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рддрд░реНрдХ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рдирдЯрд╛рдЗрдо рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓рдирд╛ рдкрдбрд╝рд╛ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдордЭ рдирд╣реАрдВ рд╕рдХрд╛) рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рддрдм рд╕реЗ рд╣рдо рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред (рдФрд░ рд╣рд╛рдБ, рд╣рдордиреЗ рддрдп рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдкрд┐рдЫрд▓реЗ
@ts-ignore
рдЕрдЧрд▓реЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдореЗрдВ
@ts-ignore
рдХрд░реЗрдВ)ред
рд╕рдВрдкрд╛рджрдХ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдлреНрд▓реЛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИред рдкреНрд░рд╡рд╛рд╣ рд╕рд░реНрд╡рд░ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЬрд▓реНрджреА рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдкреНрд░рджрд░реНрд╢рди рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж (0.5 difference1 рд╕реЗрдХреЗрдВрдб) рдирдИ рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХрд╛ рд╕рдордп рд▓рдЧрднрдЧ (рд▓рдЧрднрдЧ 2 рдорд┐рдирдЯ) рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдЕрдм рддрдХ, рд╣рдореЗрдВ рдореЗрдореЛрд░реА рдХреА рдЦрдкрдд рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ tsc рд▓рдЧрд╛рддрд╛рд░ 600 MB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдк рдЗрдВрдлрд╝реЗрдХреНрд╢рди рдлрд╝рдВрдХреНрд╢рди рдлрд╝реНрд▓реЛ рдХреЛ рдПрдХ рдмрдбрд╝рд╛ рд▓рд╛рдн рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреЛ рдХрд╛рд░рдг рд╣реИрдВ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпреЛрдВ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ:
- рд╣рдордиреЗ рдЯрд╛рдЗрдк рдХреЛрдб рдмреЗрд╕ рдХреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╣рдо рдХреЗрд╡рд▓ рдРрд╕реЗ рдХреЛрдб рднрд░ рдЖрдП рд╣реИрдВ рдЬреЛ рдлреНрд▓реЛ рд╡реНрдпрдХреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВред рдпрджрд┐ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ рд╣реБрдЖ рдерд╛, рддреЛ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди / рдЕрднрд┐рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЪреАрдЬреЗрдВ рд╣реЛрдВрдЧреАред
- рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдЗрдВрдлрд╝реЗрдХреНрд╢рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рд▓реЗрдХрд┐рди рд╕рднреА рд╕рдорд╛рди, рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдордЬрдмреВрдд рд╕рдореБрджрд╛рдп рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдереЛрдбрд╝реЗ рд╕рдордп рдХреЗ рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╕реЗ рдХрдордЬреЛрд░ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХреЛрдб рдЖрдБрдХрдбрд╝реЗ
$ npm run type-coverage
рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?
рд╣рдо рд╕реНрдереИрддрд┐рдХ рдкреНрд░рдХрд╛рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред MemSQL рдореЗрдВ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдЕрдВрддрддрдГ рдлреНрд▓реЛ рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдФрд░ рдХреБрдЫ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдЬреЛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреА) рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВрдЧреА, рдФрд░ рд╣рдо рдЕрдкрдиреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЕрдзрд┐рдХ рдХрдареЛрд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕
рдХрдбрд╝реЗ рдиреЙрдЪрдЪреЗрдХ рд╡рд┐рдХрд▓реНрдк
рд╕рдХреНрд╖рдо рд╣реИрдВ , рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдХреЛрдИ рдЕрдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред рд╣рдо рдХреЛрдб рд╕реЗ
рдХреБрдЫ рдЦрддрд░рдирд╛рдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрдпрд╛рди рднреА рдирд┐рдХрд╛рд▓реЗрдВрдЧреЗред
рдореБрдЭреЗ рдЖрдкрдХреЗ рд╕рд╛рде рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рд░реЛрдорд╛рдВрдЪ рдХреЗ рджреМрд░рд╛рди рд╕реАрдЦреА рдЧрдИ рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рдЦреБрд╢реА рд╣реИред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╖рдп рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛
рдореБрдЭреЗ рдмрддрд╛рдПрдВ ред