Tslint: рдлрд╝реАрдЪрд░ рдЕрдиреБрд░реЛрдз: рдбреЗрдб рдХреЛрдб рдбрд┐рдЯреЗрдХреНрд╢рди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 6 рдирд╡ре░ 2015  ┬╖  17рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: palantir/tslint

рд╕рдВрднрд╡рддрдГ https://github.com/palantir/tslint/issues/680 рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреИрдХреЗрдЬ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдВрджреБ (рдЬреИрд╕реЗ рдмрд┐рди рдлрд╝рд╛рдЗрд▓, рдореБрдЦреНрдп рдлрд╝рд╛рдЗрд▓), рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рдЧреНрд▓реЛрдм рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╢рд╛рдирджрд╛рд░ рд╣реЛрдЧрд╛ рдФрд░ рдореГрдд рдХреЛрдб рдкрде рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЕрдкреНрд░рдпреБрдХреНрдд рдирд┐рд░реНрдпрд╛рдд, рдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкреНрд░рдпреБрдХреНрдд рдлрд╝рд╛рдЗрд▓реЗрдВред

Accepting PRs Needs Proposal Rule Suggestion

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

рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдЕрдм рдПрдХ рдореБрдЦреНрдп рдирд┐рдпрдо рд╣реИ (рдпрджреНрдпрдкрд┐, рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдорд╣рдВрдЧрд╛)ред рдореБрдЭреЗ #2579 рдореЗрдВ рдЗрд╕реЗ no-unused-export рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИред

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

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдРрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛ рд▓реА рд╣реИ (TSLint рд╕реЗ рдмрдВрдзреА рдирд╣реАрдВ)ред рдХреНрдпрд╛ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛?

@louy рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдЗрд╕реЗ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛! рдзрдиреНрдпрд╡рд╛рдж: рдореБрд╕реНрдХрд╛рди:

рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ npm рдореЙрдбреНрдпреВрд▓ рдПрдХ рд╕рд╛рде рд░рдЦрд╛ рд╣реИред
https://github.com/louy/find-orphans/blob/master/README.md

рдЕрдЧрд░ рдореБрдЭреЗ рдЗрд╕рдХреА рдорд╛рдВрдЧ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рддреЛ рдореИрдВ рдмрд╛рдж рдореЗрдВ рдФрд░ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реВрдВрдЧрд╛ред рдЕрднреА рдЗрд╕реЗ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

TSLint рдХреЛрдИ рдореЙрдбреНрдпреВрд▓ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рдЕрднреА рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИред рддреЛ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рдирд╛ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рд╕рд╛рдл рд╕реБрдерд░реА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ; рдореИрдВ рдЗрд╕реЗ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред

TS 2.x "allowUnreachableCode": false рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдХрд╛рд░рдг рдЗрд╕реЗ рдЕрдм рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

@chrismbarr рдпрд╣ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдЕрдкреНрд░рд╛рдкреНрдп рдХреЛрдб рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореГрдд рдХреЛрдб рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рддрд╛ рд╣реИ (рдпрд╛ рддреЛ рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдпрд╛ рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ)ред рдбреЗрдб рдХреЛрдб рдбрд┐рдЯреЗрдХреНрд╢рди рдЖрдкрдХреЛ "рд╡реЗрд░рд┐рдПрдмрд▓ x рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ" рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рдмрддрд╛рдПрдЧрд╛, рдЬрдмрдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ-рд╡рд╛рдЗрдб рдбреЗрдб рдХреЛрдб рдбрд┐рдЯреЗрдХреНрд╢рди рдЗрд╕рд╕реЗ рдЖрдЧреЗ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ "рдирд┐рд░реНрдпрд╛рддрд┐рдд рд╡реИрд░рд┐рдПрдмрд▓ x рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рдмрддрд╛рдПрдЧрд╛ред ". FWIW, noUnused{Parameters,Locals} рд▓рд┐рдП рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдХрд▓реНрдк рдЕрдЧрдореНрдп рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдбреЗрдб рдХреЛрдб рдбрд┐рдЯреЗрдХреНрд╢рди рдХреЗ рдХрд░реАрдм рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИред рд╡реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВред

@adidahiya рдЕрдм рдпрд╣ рдПрдХ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдЧреА рдХрд┐ рдЯрд╛рдЗрдк рдЪреЗрдХрд░ рдореМрдЬреВрдж рд╣реИ? рдореИрдВ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдмрд╛рд╣рд░реА рдирд┐рдпрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореВрд▓реНрдпрд╡рд╛рди рд╣реЛрдЧрд╛ред

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

рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдЕрдм рдПрдХ рдореБрдЦреНрдп рдирд┐рдпрдо рд╣реИ (рдпрджреНрдпрдкрд┐, рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдорд╣рдВрдЧрд╛)ред рдореБрдЭреЗ #2579 рдореЗрдВ рдЗрд╕реЗ no-unused-export рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП TS рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ 0 рдмрд╛рд╣рд░реА рд╕рдВрджрд░реНрднреЛрдВ рд╡рд╛рд▓реЗ рд╕рднреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдЬрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдкреБрдирдГред рдореЗрд░реА рдЖрдЦрд┐рд░реА рдЯрд┐рдкреНрдкрдгреА, рдпрд╣рд╛рдБ рдПрдХ рдЫреЛрдЯреА рдЫреЛрдЯреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ (рдпрджреНрдпрдкрд┐ рдХрд╛рдлреА рдзреАрдореА) рдЬреЛ рдРрд╕рд╛ рдХрд░рддреА рд╣реИ: https://mobile.twitter.com/OliverJAsh/status/1060204943594926081

рдЕрдм рдХрд┐рд╕реА рддрд░рд╣ TSLint рдирд┐рдпрдо рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ред рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕ рдкрд░ рдХреБрдЫ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рджреЗ рд╕рдХрддрд╛ рд╣реИ? рдореИрдВ

рдирд┐рдлреНрдЯреА, рдЙрд╕ @OliverJAsh рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

https://github.com/bcherny/tslint-no-circular-imports/ рдПрдХ рдЕрдЪреНрдЫреА рд╢реБрд░реБрдЖрдд рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдЧреНрд░рд╛рдл рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред

рдЬрдм рддрдХ рдпрд╣ рдПрдХ рдлреАрдЪрд░ рдореЗрдВ рдирд╣реАрдВ рдмрди рдЬрд╛рддрд╛, рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реАрдПрд▓рдЖрдИ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рддрд╛ рд╣реИ: https://github.com/nadeesha/ts-prune

@nadeesha рдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЗ

рдХреВрд▓ - рдмрд╛рд╣рд░реА ts-prune рдФрд░ TSLint (#4534) рдХреЗ рдЖрдЧрд╛рдореА рдмрд╣рд┐рд╖реНрдХрд░рдг рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрднреА рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрддреЛрдВ!

find-unused-exports рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЕрдкреНрд░рдпреБрдХреНрдд рдИрд╕реАрдПрдордПрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрдпрд╛рдд рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдиреЛрдб.рдЬреЗрдПрд╕ рд╕реАрдПрд▓рдЖрдИ рдФрд░ рд╕рдордХрдХреНрд╖ рдЬреЗрдПрд╕ рдПрдкреАрдЖрдИ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдпрд╣ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ; рдпрд╣ Babel (рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ Babel config рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддреЗ рд╣реБрдП) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЙрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрдпрд╛рддреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдкреНрд░рдпреБрдХреНрдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдиреЗрдХреНрд╕реНрдЯ.рдЬреЗрдПрд╕ рдкреЗрдЬ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрдпрд╛рдд) рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ npx find-unused-exports рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рд░рд╛рд╕рддреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЛрдб рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рд╣реИред

find-unused-exports CLI screenshot

рдмреАрдк рдмреВрдк! TSLint рдкрджрд╛рд╡рдирдд рд╣реИ рдФрд░ рдЖрдкрдХреЛ typescript-eslint рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП! рдореИрдВ

рдЖрдЧреЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд▓реЙрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рд╢реБрдХреНрд░рд┐рдпрд╛! рдореИрдВ

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

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

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

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

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

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

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