Tslint: рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдирд┐рдпрдо рдХреЛ рд╡рд░реНрдЧ рд╕рджрд╕реНрдп рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдореЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдХреЛ рдирд┐рд░реНрдорд┐рдд 11 рдЕрдЧре░ 2016  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: palantir/tslint

рд╣рдордиреЗ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдирд┐рдпрдо рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдмрд╛рдзреНрдп рд╡рд░реНрдЧ рд╕рджрд╕реНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рдж рдЕрдиреБрдЧрд╛рдореА рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ:

class Foo {
  public renderFoo = () => {
    return null;
  }
   ^ right here
}

рдореЗрд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ рдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ TSLint 4.0 рдореЗрдВ рдЙрд╕ рд╕реНрдерд╛рди рдкрд░ _ban_ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдХрд░реЗрдВред рд╣рдо рдПрдХ рдирдП рд╡рд┐рдХрд▓реНрдк allow-bound-class-methods рдХреЗ рд╕рд╛рде рдкреБрд░рд╛рдиреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

Easy P2 Fixed Breaking Change Enhancement

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕ рдереНрд░реЗрдб рдкрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА tslint рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдХреА рддрд▓рд╛рд╢ рд╣реИ (рдЬреИрд╕рд╛ рдореИрдВрдиреЗ рдХрд┐рдпрд╛) - рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реЛрдЧрд╛:
"рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо": [рд╕рдЪ, "рд╣рдореЗрд╢рд╛", "рдЕрдирджреЗрдЦрд╛-рдмрд╛рдзреНрдп-рд╡рд░реНрдЧ-рд╡рд┐рдзрд┐рдпреЛрдВ"]

рджреЗрдЦреЗрдВ: https://palantir.github.io/tslint/rules/semicolon/

рд╕рднреА 8 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

рдПрдХ рдлреАрдбрдмреИрдХ рдЖрдЗрдЯрдо рдХреЗ рд░реВрдк рдореЗрдВ (рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╣реА рд╕реНрдерд╛рди рд╣реИ?), рд╣рдо рдмрд╕ рдЗрд╕ рдкрд░ рдареЛрдХрд░ рдЦрд╛ рдЧрдП, рдФрд░ рдЗрд╕ рдкрд░ рдмрд╣реБрдд рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖред

рдореИрдВ рд╢рд╛рдпрдж рдЗрд╕рдХреЗ рдкреАрдЫреЗ рддрд░реНрдХ рдХреЛ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ tslint рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдзреНрд╡рдЬрд╛рдВрдХрд┐рдд рдХрд░рддрд╛ рд╣реИ (рдпрд╛рдиреА рдЙрдиреНрд╣реЗрдВ рдЫреЛрдбрд╝рдирд╛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ) рднреНрд░рдорд┐рдд рд▓рдЧрддрд╛ рд╣реИред

рдЖрдк ignore-bound-class-methods рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдкреБрд░рд╛рдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╡рд╛рдкрд╕ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЯреАрдПрд╕ рдХреЛрдб рдореЗрдВ рдмрд╛рдзреНрдп рд╡рд░реНрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдирд┐рдпрдорд┐рдд рд╡рд░реНрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рддрд░рд╣ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред

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

рдореИрдВрдиреЗ Intellij . рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдлреЗрдВрдХрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛

рдореИрдВрдиреЗ рд╡рд░реНрдЧ рддреАрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреАрдЫреЗ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдлрд┐рд░ рдореБрдЭреЗ рдпрд╣ рдЪреЗрддрд╛рд╡рдиреА рдорд┐рд▓реА:
image

рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛:
image

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ:
image

рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛:
image

рд▓реЗрдХрд┐рди рдлрд┐рд░ рдпрд╣ рдПрдХ рд╕рд╛рде рдЕрд░реНрдзрд╡рд┐рд░рд╛рдореЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред

tslint рд╕рдВрд╕реНрдХрд░рдг: 4.4.2
рдЯреАрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг: 2.1.5
рдЗрдВрдЯреЗрд▓рд┐рдЬ рд╕рдВрд╕реНрдХрд░рдг: 2016.3
рдУрдПрд╕: рд╡рд┐рдВрдбреЛрдЬрд╝ 10 x64

рдЗрд╕ рдереНрд░реЗрдб рдкрд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА tslint рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдХреА рддрд▓рд╛рд╢ рд╣реИ (рдЬреИрд╕рд╛ рдореИрдВрдиреЗ рдХрд┐рдпрд╛) - рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реЛрдЧрд╛:
"рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо": [рд╕рдЪ, "рд╣рдореЗрд╢рд╛", "рдЕрдирджреЗрдЦрд╛-рдмрд╛рдзреНрдп-рд╡рд░реНрдЧ-рд╡рд┐рдзрд┐рдпреЛрдВ"]

рджреЗрдЦреЗрдВ: https://palantir.github.io/tslint/rules/semicolon/

@popstr рд╣рд╛рдВ, рдореИрдВ рднреА рдпрд╣реА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

"semicolon": [true, "always", "ignore-bound-class-methods"]

рдореИрдВрдиреЗ #3216 рдмрдирд╛рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдирджреЗрдЦреА рдХрд░рдирд╛ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдФрд░ ignore-bound-class-methods рд╡рд┐рдХрд▓реНрдк рдХреЗ рдмрд┐рдирд╛ рдирд┐рдпрдо рдЕрднреА рднреА рдЫреЛрдЯреА рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ypresto picture ypresto  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cateyes99 picture cateyes99  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Ne-Ne picture Ne-Ne  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jacob-robertson picture jacob-robertson  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ