рдШреЛрдбрд╝рд╛ рдорд░ рдЪреБрдХрд╛ рд╣реИ - рд░реЛрдирд╛: tslint рд╕реЗ eslint рдореЗрдВ рд╕рдВрдХреНрд░рдордг

рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рддрдХ, рд╕рд╛рдордиреЗ рдХреА рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рдбреЛрдбреЛ рдкрд┐рдЬреНрдЬрд╛ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ tslint рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ - рдПрдХ рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдХреЛрдб рдХреЛ рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рджрд┐рдпрд╛ рдерд╛, рдЧрд▓рддрд┐рдпрд╛рдБ рдХреА, рдПрдХ рд╢реИрд▓реА рдореЗрдВ рдХреЛрдб рдмрдирд╛рдП рд░рдЦрдиреЗ рдФрд░ рдХрдИ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд╕рд╣реА рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рддрдм tslint рд▓рд┐рдпрд╛ рдФрд░ рдорд░ рдЧрдпрд╛ред рдХрдЯреМрддреА рдХреЗ рддрд╣рдд, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реБрдЖ, рдореГрддрдХ рдкрд░ рдЖрдВрд╕реВ рдмрд╣рд╛рдирд╛ рдХреИрд╕реЗ рд░реЛрдХреЗрдВ рдФрд░ рдПрд╕реНрд▓рд┐рдВрдЯ рдЯреВрд▓ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ, рдФрд░ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рдЕрдВрддрд░рдВрдЧ рднреА рджрд┐рдЦрд╛рдПрдВред



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

рдПрдХ рднрд╛рд╖рд╛, рдПрдХ рдвреЗрд░, рдПрдХ рд╕рдореБрджрд╛рдп


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

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

рдпрд╣рд╛рдБ рдпрд╣ рдкрд╛рдардХ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдПрд╕реНрд▓рд┐рдВрдЯ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рдХреЛрдИ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред рдЧреЛрд▓реА рдХреЛ рдореАрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХрд╣рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐:

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

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдПрдХ рдирдП рд▓рд┐рдВрдЯрд░ рдХреЛ рд╕рдВрдХреНрд░рдордг рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдореБрдЦреНрдпрдзрд╛рд░рд╛ рдХрд╛ рдЙрддреНрдкрд╛рдж рд╣реИ, рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рдЕрдирджреЗрдЦреЗ рдЕрд╡рд╕рд░реЛрдВ рдХреА рдПрдХ рдкреВрд░реА рджреБрдирд┐рдпрд╛ рдЦреЛрд▓ рджреЗрдЧрд╛ред рдЕрдЪреНрдЫрд╛, рдЪрд▓реЛ рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ!

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрд╕реНрд▓рд┐рдиреНрдЯ рдЬреЛрдбрд╝реЗрдВ


рдореИрдВ рдиреАрдЪреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдкреНрд░рд╡рд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред рдЗрд╕ рдмреАрдЪ, рдПрд╕реНрд▓реЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА tslint рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рддреЛ рдкрд╣рд▓реЗ tslint рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ: tslint рд╣реА, tslint-reaction, tslint-config-prettier, рдЖрджрд┐ред

рдЕрдм рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрд╕реНрд▓рд┐рдВрдЯ рдкреИрдХреЗрдЬ рдЬреЛрдбрд╝реЗрдВ (рд╕рдм рдХреБрдЫ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░реЗрдВ):

  • рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ;
  • @ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдПрд╕рд▓рд┐рдВрдЯ / рдкрд╛рд░реНрд╕рд░ - рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЬрди;
  • @ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдПрд╕реНрд▓рд┐рдВрдЯ / рдПрд╕реНрд▓рд┐рдВрдЯ-рдкреНрд▓рдЧрдЗрди - рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рд╕реЗрдЯ

Eslint рдиреНрдпреВрдирддрдо рд╕реЗрдЯрдЕрдк


.Eslintrc.json рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБред Eslint рдЕрдкрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдХрдИ рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рд░реВрдкреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди JSON рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдиреНрдпреВрдирддрдо рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:
{ //   "env": { //    "browser": true, //   ES6 "es6": true, //   ES2017 "es2017": true }, //   "extends": [ //    eslint "eslint:recommended", //      "plugin:@typescript-eslint/eslint-recommended", //    TypeScript "plugin:@typescript-eslint/recommended", //  TS,     "plugin:@typescript-eslint/recommended-requiring-type-checking" ], //   "parser": "@typescript-eslint/parser", "parserOptions": { //    TS     "project": "tsconfig.json", "tsconfigRootDir": ".", }, //      TypeScript "plugins": ["@typescript-eslint"], "rules": {} } 

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

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

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

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

рд▓реЗрдХрд┐рди рдирд┐рдпрдореЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЯреАрдПрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, @ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдПрд╕реНрд▓рд┐рдВрдЯ / рдиреЛ-рдЕрдирд╛рд╡рд╢реНрдпрдХ-рдЯрд╛рдЗрдк-рдПрд╕реЗрд░реЗрд╢рди), рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдЗрдВрдЬрди рдХреЛ tsconfig.json рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬрд┐рд╕ рдкрде рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

Tsconfig.json рдореЗрдВ, рд╣рдо рдбреЛрдбреЛ рдкрд┐рдЬреНрдЬрд╛ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдмрд╣рд┐рд╖реНрдХреГрдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдмрд╛рд╣рд░ рдлреЗрдВрдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╡реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рди рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдФрд░ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣реА рд╣реИ, рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд▓рд┐рдВрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЙрдиреНрд╣реЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдкрд░ рд╢рдкрде рдЧреНрд░рд╣рдг рд╣реЛрдЧрд╛: "рдлрд╝рд╛рдЗрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ, рдореИрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдирд╣реАрдВ рдлреЗрдВрдХреВрдВрдЧрд╛ред" рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ - createDefaultProgram: true рдкреИрд░рд╛рдореАрдЯрд░ред рдпрд╣, рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдХрд╛ рдЕрд░реНрде рд╣реИ: "рдЬреЛ рдЖрдк рдкрд╛рддреЗ рд╣реИрдВ рд╡рд╣ рд╕рдм рдкрд╛рд░рд╕реА рд╣реИред" рд▓реЗрдХрд┐рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЧрд┐рд░рд╛рд╡рдЯ рдХреЗ рдХрд╛рд░рдг рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рджреГрдврд╝рддрд╛ рд╕реЗ рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ForkTsCheckerWebpackPlugin рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ tslint: true рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд tslint: true eslint: true рд╕рд╛рде eslint: true рдЗрд╕рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ eslint: true (webpack.config.ts рдореЗрдВ)ред

рдпрд╣ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рд▓рд┐рдВрдЯрд░ рдХреЗ рд▓реЙрдиреНрдЪ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рднреА рд╣реИред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕ рдорд╛рди рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦрдВрдб рдореЗрдВ package.json :

 "eslint": "eslint --cache --ext .js,.jsx,.ts,.tsx src", "eslint:dump": "eslint --print-config ./.eslintrc.json", 

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

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

Visual Studio рдХреЛрдб рд╕реЗрдЯ рдХрд░рдирд╛


рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЪрд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЗрдирд░ рдХреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдЗрд╕рдХрд╛ рдирд┐рд╣рд┐рддрд╛рд░реНрде рднреА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рдореЗрдВ рд╣рдо рд▓рд┐рдВрдЯрд░ рд╕реЗ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗред рдРрд╕рд╛ рдХреИрд╕реЗ!

рд╕реНрдЯреВрдбрд┐рдпреЛ (dbaeumer.vscode-eslint) рдХреЗ рд▓рд┐рдП рдПрдХ рдПрд╕реНрдХреНрд▓рд┐рдВрдЯ рдкреНрд▓рдЧрдЗрди рд╣реИ, рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдХреБрдЫ рднреА рд╡реИрд╕реЗ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдХреБрдЫ рднреА рдЬреЛрд░ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╕рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреНрдпреЛрдВ? рдХреНрдпреЛрдВрдХрд┐ рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ, рдЬреЛ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

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

 "eslint.validate": [ "javascript", "javascriptreact", "typescriptreact", "typescript", ], 

рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ рдФрд░ рд╕рдм рдХреБрдЫ рдЕрдВрдд рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ред

рдЕрдм рдпрд╣ рдирд┐рдпрдореЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ


рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдЕрдм рдирд┐рдпрдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдирд┐рдпрдореЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдКрдкрд░ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд░рд┐рдХреНрдд рдерд╛ред

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

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

рд╣рдордиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬреЛ рднреА tslint рдирд┐рдпрдо рд╕реЗрдЯ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред рдФрд░ рдЦрд░реЛрдВрдЪ рд╕реЗ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд╕реЗрдЯ рдмрдирд╛рдПрдВред

рдПрд╕реНрд▓рд┐рдВрдЯ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд┐рдпрдо рд╕реЗрдЯ рд╣реИрдВ:

  • ESLint рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рддрдЯрд╕реНрде рд╕реЗрдЯ рд╣реИ рдЬреЛ рд╣реЛрд▓реАрд╡рд░реЛрдВ рдХреЛ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреЗрд╡рд▓ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдЪреЗрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рдЕрдкреНрд░рдпреБрдХреНрдд рдЪрд░, рдЖрджрд┐ред рд╕рднреА рдмрд╛рдж рдХреЗ рд╕реЗрдЯ рдЗрд╕ рдПрдХ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
  • Google - рд╣реЛрд▓реАрд╡рд░ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдХрд╛рд░рдг рд╣реИ: рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХрдбрд╝рд╛рдИ рд╕реЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╣реИрдВ, рдПрдХ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
  • AirBnB - рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рд╕рд╣рд┐рдд рд╕рдЦреНрдд рд╢реИрд▓реА рдХреЗ рдирд┐рдпрдо рднреА рд╣реИрдВред
  • рд╕реНрдЯреИрдВрдбрдЖрд░реНрдЯ - рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдпрд╣рд╛рдВ рдирд┐рд╖рд┐рджреНрдз рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдиреБрдЧрд╛рдореА рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рднреА рдирд┐рд╖рд┐рджреНрдз рд╣реИрдВред

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

рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реЗрдХреНрд╕: рдирд┐рдпрдореЛрдВ рдХрд╛ рдЕрдкрдирд╛ рд╕реЗрдЯ


рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдЖрдкрдХреЗ рдПрд╕реНрд▓рд┐рдВрдЯ рдирд┐рдпрдо рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рдбрд╝рдХреА рдЬреИрд╕реЗ рд╕реНрддрди рджрд┐рдЦрд╛ рд░рд╣реА рд╣реИ: рдФрд░ рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИрдВред рдореИрдВрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕реЛрдЪрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдРрд╕рд╛ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИред рд▓реЗрдХрд┐рди, рд╕рд╛рдереА рд▓рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░рд╛рдорд░реНрд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдерд╛ред

рдореИрдВ рдЙрди рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╕реЗ рд╢реБрд░реВ рдХрд░реВрдБрдЧрд╛ рдЬрд┐рдирдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:

  • рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ - рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдШрдЯрдХ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИред рдирд┐рдпрдореЛрдВ рдХрд╛ рдореВрд▓ рд╕реЗрдЯ рдкреНрд▓рд╕ рд╣рдорд╛рд░рд╛ред рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реЗ: рд╣рдо рд╢реБрджреНрдз рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдбреВрдм рдЧрдП;
  • рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рд╣реБрдХ - рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рд╣реБрдХ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рдпрдо;
  • рд╡рд╛рджрд╛ - рд╡рд╛рджрд╛ рдХрд░рддреЗ рд╕рдордп рд╕рд╛рдорд╛рдиреНрдп рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪред рдпрд╣ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реЗ: рд╣рдо рд╣рд░ рдЬрдЧрд╣ рд╡рд╛рджрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреЙрд▓рдмреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдХреЛрдб рдХреА рдмреЗрд╣рддрд░ рдкрдардиреАрдпрддрд╛ рдХреЗ рдХрд╛рд░рдг рдкрдХрдбрд╝ рд▓реЗрддреЗ рд╣реИрдВ;
  • рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝-рд░реЗрдЧреЗрдХреНрд╕ рдПрдХ рдордЬреЗрджрд╛рд░ рдкреНрд▓рдЧрдЗрди рд╣реИ рдЬреЛ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИред рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ regexp рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдереЛрдбрд╝рд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рднреА рд╕реЗ рджреВрд░ regexp рдЬрд╛рджреВ рд╣реИред рддреЛ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдкреВрдЫрдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реИ;
  • рд╕реЛрдирд╛рд░рдЬ рдПрдХ рдлрд╛рдпрд░-рдкреНрд▓рдЧрдЗрди рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдб рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рд╣реИрдВред рдкрд╣рд▓реА рдПрдХ рдордЬрд╝реЗрджрд╛рд░ рдмрд╛рдд рд╣реИ: рдкреНрд▓рдЧрдЗрди рдХреЛрдб рдХреА рдХрдерд┐рдд рдЬрдЯрд┐рд▓рддрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИ рдЬрдм рдпрд╣ рдХреЛрдб рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдЕрдХреНрд╕рд░ рдХреЛрдб рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдпрд╛ рдХрдо рд╕реЗ рдХрдо, рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ;
  • @ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдПрд╕реНрд▓рд┐рдВрдЯ - рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рдирд┐рдпрдоред рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдирд┐рдпрдореЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрдЯ рдЬреЛ рдЯреАрдПрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИред

рд╣рдорд╛рд░реА рдкреВрд░реА рдирд┐рдпрдо рдлрд╝рд╛рдЗрд▓ рдпрд╣рд╛рдБ рд╣реИ ред рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдПрдХ рд╣рдардзрд░реНрдорд┐рддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓ рд╣реИред

Source: https://habr.com/ru/post/hi473648/


All Articles