Tslint: рдЪреЗрддрд╛рд╡рдиреА: 'рдиреЛ-рдЕрдирдпреВрдЬреНрдб-рд╡реЗрд░рд┐рдПрдмрд▓' рдирд┐рдпрдо рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдореИрд╕реЗрдЬ рдХреА рдЬрд░реВрд░рдд рд╣реИ...

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рдЬреВрди 2017  ┬╖  46рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: palantir/tslint

рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ

tslint.json рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде:

{
  "rulesDirectory": [
    "node_modules/codelyzer"
  ],
  "rules": {
    "arrow-return-shorthand": true,
    "callable-types": true,
    "class-name": true,
    "comment-format": [
      true,
      "check-space"
    ],
    "curly": true,
    "eofline": true,
    "forin": true,
    "import-blacklist": [
      true,
      "rxjs"
    ],
    "import-spacing": true,
    "indent": [
      true,
      "spaces"
    ],
    "interface-over-type-literal": true,
    "label-position": true,
    "max-line-length": [
      true,
      140
    ],
    "member-access": false,
    "member-ordering": [
      true,
      {
        "order": [
          "public-static-field",
          "protected-static-field",
          "public-static-method",
          "protected-static-method"
        ]
      }
    ],
    "no-arg": true,
    "no-bitwise": true,
    "no-console": [
      true,
      "debug",
      "info",
      "time",
      "timeEnd",
      "trace"
    ],
    "no-construct": true,
    "no-debugger": true,
    "no-duplicate-super": true,
    "no-empty": false,
    "no-empty-interface": true,
    "no-eval": true,
    "no-inferrable-types": [
      true,
      "ignore-params"
    ],
    "no-unused-variable": true,
    "no-misused-new": true,
    "no-non-null-assertion": true,
    "no-shadowed-variable": true,
    "no-string-literal": false,
    "no-string-throw": true,
    "no-switch-case-fall-through": true,
    "no-trailing-whitespace": true,
    "no-unnecessary-initializer": true,
    "no-unused-expression": true,
    "no-var-keyword": true,
    "object-literal-sort-keys": false,
    "one-line": [
      true,
      "check-open-brace",
      "check-catch",
      "check-else",
      "check-whitespace"
    ],
    "prefer-const": true,
    "quotemark": [
      true,
      "single"
    ],
    "radix": true,
    "semicolon": [
      "always"
    ],
    "triple-equals": [
      true,
      "allow-null-check"
    ],
    "typedef-whitespace": [
      true,
      {
        "call-signature": "nospace",
        "index-signature": "nospace",
        "parameter": "nospace",
        "property-declaration": "nospace",
        "variable-declaration": "nospace"
      }
    ],
    "typeof-compare": true,
    "unified-signatures": true,
    "variable-name": false,
    "whitespace": [
      true,
      "check-branch",
      "check-decl",
      "check-operator",
      "check-separator",
      "check-type"
    ],
    "directive-selector": [
      true,
      "attribute",
      "app",
      "camelCase"
    ],
    "component-selector": [
      true,
      "element",
      "app",
      "kebab-case"
    ],
    "use-input-property-decorator": true,
    "use-output-property-decorator": true,
    "use-host-property-decorator": true,
    "no-input-rename": true,
    "no-output-rename": true,
    "use-life-cycle-interface": true,
    "use-pipe-transform-interface": true,
    "component-class-suffix": true,
    "directive-class-suffix": true,
    "no-access-missing-member": true,
    "templates-use-public": true,
    "invoke-injectable": true
  }
}

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдБ?

  • __TSLint рд╕рдВрд╕реНрдХрд░рдг__: 5.4.3
  • __рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг__: 2.3.4
  • __TSLint рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИ__: рдпрд╛рд░реНрди рдФрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░

рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде tslint рдЪрд▓рд╛рддреЗ рд╕рдордп:

tslint --type-check --project tsconfig.json  src/**/*.ts

рдореБрдЭреЗ рдиреАрдЪреЗ рджреА рдЧрдИ рдЪреЗрддрд╛рд╡рдиреА рдорд┐рд▓рддреА рд╣реИ:

Could not find implementations for the following rules specified in the configuration:
    Warning: The 'no-unused-variable' rule requires type checking
Try upgrading TSLint and/or ensuring that you have all necessary custom rules installed.
If TSLint was recently upgraded, you may have old rules configured which need to be cleaned up.

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

tslint рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдмрд╕ рдЗрддрдирд╛ рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ --type-check --project tsconfig.json рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

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

рдпрджрд┐ рдЖрдк VSCode 1.19 рд░реАрдбрдореА рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдФрд░ рдЕрдиреНрдп рдирд┐рдпрдореЛрдВ рдХреЛ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЯреНрд░реАрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ:

  • "no-unused-variable" рдХреЛ tslint.json рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ
  • рдЬреЛрдбрд╝рдиреЗ "noUnusedLocals" рд╣рдорд╛рд░реЗ рд▓рд┐рдП tsconfig.json

рдЕрдиреНрдп рдирд┐рдпрдо рдкрд╛рдардХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЫреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ ;-)

рдзреНрдпрд╛рди рджреЗрдВ, рдХрд┐ tslint рдпрд╣ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИ, рдЬрдмрдХрд┐ tsconfig VSCode рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред

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

рдХреГрдкрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рднрд░реЗрдВ. рдЖрдкрдХрд╛ tslint.json рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ?

рдореИрдВ рдШрд░ рдкрд░ рд╣реВрдВ рдФрд░ рдЙрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рддрдм рддрдХ рдЦреБрд▓рд╛ рд░рдЦреВрдВрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рд╕реЛрдорд╡рд╛рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдкрд░ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ред рдмрд╕ рдореЗрд░реЗ рдиреЛрдб рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдореИрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рд╣реИред

tslint рдЕрдкрдбреЗрдЯ рд╣реЛрдиреЗ рдХреЗ рдХреБрдЫ рд╕рдордп рдмрд╛рдж (рд╢рд╛рдпрдж v4 -> v5), no-unused-variable рдмрд┐рдирд╛ --type-check , --project рддрд░реНрдХреЛрдВ рдХреЗ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред

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

tslint рдЕрдкрдбреЗрдЯ рд╣реЛрдиреЗ рдХреЗ рдХреБрдЫ рд╕рдордп рдмрд╛рдж (рд╢рд╛рдпрдж v4 -> v5), рдмрд┐рдирд╛ рдЕрдкреНрд░рдпреБрдХреНрдд-рдЪрд░ --type-check, --project рддрд░реНрдХреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВред

рдореИрдВ tslint --type-check --project tsconfig.json src/**/*.ts рд╕рд╛рде --рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЧреБрдЬрд░ рд░рд╣рд╛ рд╣реВрдВ

рдореЗрд░реЗ рд╣реЛрдо рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛ рд░рд╣реА рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╣реВрдВред

@everedifice рдирд┐рдпрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдмрдЧ рдереЗ, рд╣рдордиреЗ рдЗрд╕реЗ рд▓рдЧрднрдЧ рдкрджрд╛рд╡рдирдд рдХрд░ рджрд┐рдпрд╛ (https://github.com/palantir/tslint/issues/1481), рдФрд░ рдЕрдВрддрддрдГ рд╕рдВрдХрд▓рдХ рдХреЗ рд╕реМрдВрдкрдХрд░ рдЗрд╕реЗ рд░рдЦрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ (рдЗрд╕рдиреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдмрдЧреЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛)ред рдЗрд╕ рд░реЗрдкреЛ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЪрд░реНрдЪрд╛ рд╕реВрддреНрд░ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рдЬреНрдпрд╛рджрд╛рддрд░ рдкреАрдЖрд░ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдЬрд┐рд╕рдиреЗ рдмреНрд░реЗрдХрд┐рдВрдЧ рдЪреЗрдВрдЬ рдХрд┐рдпрд╛ рд╣реИ ( https://github.com/palantir/tslint/pull/2235.

@mastrauckas рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ рдЖрдкрдХреА рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

@adidahiya рдореБрдЭреЗ рдпрд╣ рддреАрд╕рд░реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдорд┐рд▓ рд░рд╣рд╛ рдерд╛ рдЬреЛ рдХрд▓ рд░рд╛рдд рднреА рдПрдХ

рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдореЗрдВ:
рдХрдВрдкреНрдпреВрдЯрд░ 1: рд╡рд┐рдВрдбреЛрдЬ 10 рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрджреНрдпрддрд┐рдд рд╣реИ рдФрд░ рдЕрднреА рдореБрдЭреЗ error рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред
рдХрдВрдкреНрдпреВрдЯрд░ 2: macOS рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдбреЗрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ error ред
рдХрдВрдкреНрдпреВрдЯрд░ 3: рд╡рд┐рдВрдбреЛрдЬ 7 рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдбреЗрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ error ред

@everedifice рдореИрдВрдиреЗ рдЕрднреА рдПрдХ рдирдП рдирд┐рдпрдо no-unused tslint-consistent-codestyle рд╕рд╛рде no-unused-variable рдЬреИрд╕рд╛ рд╣реИ рд▓реЗрдХрд┐рди --project --type-check рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛

рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдпрд╣рд╛рдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/ajafff/tslint-consistent-codestyle/blob/master/docs/no-unused.md

рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдЬрд┐рд╕ рдХрдВрдкреНрдпреВрдЯрд░ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рд╡рд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдмрдЧ рд╣реИ?

рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреБрдЫ рдирдпрд╛?

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред

рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреЛрдиреЛрдВ 'рдЪреЗрддрд╛рд╡рдиреА: 'рдиреЛ-рдЕрдкреНрд░рдпреБрдХреНрдд-рдЪрд░' рдирд┐рдпрдо рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред'
рдФрд░ 'рдЪреЗрддрд╛рд╡рдиреА: 'рдиреЛ-рдпреВрдЬрд╝-рдкрд╣рд▓реЗ-рдШреЛрд╖рдгрд╛' рдирд┐рдпрдо рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред' (рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ 'рд╕реВрдЪрдирд╛' рдореЗрдВ рдЯрд╛рдЗрдкреЛ рд╕рдВрд╕реНрдХрд░рдг 5.5.0 рдФрд░ 5.7.0 рдХреЗ рдмреАрдЪ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рд╣реИ рдЬреЛ рдмрджрд▓ рдЧрдИ рд╣реИ)ред рдореИрдВ рдЗрд╕реЗ рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рд╕рдВрд╕реНрдХрд░рдг 2.4.1 рдХреЗ рд╕рд╛рде рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВред рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдХреЛрдИ рдЦрдмрд░?

рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдореБрджреНрджрд╛

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

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рддрдп рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдореБрджреНрджреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ред

рд╕реНрдерд╛рдпреА рд╕реБрдзрд╛рд░, tslint.json рдХреЗ рдмрдЬрд╛рдп tsconfig.json рдореЗрдВ no-unused-variable рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрджрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд▓рд┐рдВрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред

@AnimaMundi рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдпрд╣ рд╡рд╣реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдорд╛рд░реА рд╕реАрдЖрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ tslint рдЪрд▓рд╛рддреЗ рд╕рдордп рдЗрдиреНрд╣реЗрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдзреНрд╡рдЬрд╛рдВрдХрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рди рдХрд┐ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рдиред рдореИрдВ рдЕрд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛/рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрдХрд▓рдХ рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдкрд░ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИред

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

@AnimaMundi рдХреЗ рдлрд┐рдХреНрд╕ рдХреЗ рд╕рдорд╛рди, рдореИрдВрдиреЗ рдЕрдкрдиреЗ tsconfig.json рдореЗрдВ noUnusedLocals рдФрд░ noUnusedParameters рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдореЗрд░реА "рд╕рдорд╕реНрдпрд╛рдПрдВ" рдлрд▓рдХ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВред

@AnimaMundi @haswalt @keego рдПрдХ рд▓рд┐рдВрдЯ рдирд┐рдпрдо рдХреЗ рдЧреБрдг рдмрдирд╛рдо рдЕрдкреНрд░рдпреБрдХреНрдд

@adidahiya рдореЗрд░реА рдЯрд┐рдкреНрдкрдгреА рдХреЗрд╡рд▓ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереА, рд▓рд┐рдЯрд░ рдирд┐рдпрдореЛрдВ рдмрдирд╛рдо рдХрдВрдкрд╛рдЗрд▓рд░ рдЪреЗрдХ рдХреА рдпреЛрдЧреНрдпрддрд╛ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддреА рдереАред

рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдбрд┐рдлрд░ рдХрд░рдирд╛ рдПрдХ рд╣реА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╡рд┐рдХрд▓реНрдк рд╣реЛрддрд╛ рд╣реИ: FAILред
рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП tslint рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрдХреНрд╕рд░ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА (рд╣рд░реЗ рд░рдВрдЧ рдХреА рд╕реНрдХреНрд╡реАрдЧрд▓ рдмрдирд╛рдо рд▓рд╛рд▓ рдПрдХ) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

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

рдЗрди рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рд╣реИрд╢ рдЖрдЙрдЯ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдореЗрд░реА рдЖрдЦрд┐рд░реА рдЯрд┐рдкреНрдкрдгреА рдФрд░ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдзрд╛рдЧреЗ рджреЗрдЦреЗрдВ)ред рдЕрднреА рдЖрдкрдХреЛ TSLint рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ no-unused-variable рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рд░реЛрдХ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпреЗ рдЕрдиреБрд╡рд░реНрддреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдХреНрдпрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реА рд╣реИрдВред

@mastrauckas рдХреНрдпрд╛ рдЖрдк рдЕрднреА рднреА рдЗрд╕ рдирд┐рдпрдо рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? --type-check рдзреНрд╡рдЬ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рдХрд╛рд░ рдЬрд╛рдБрдЪ рдЖрдзрд╛рд░рд┐рдд рдирд┐рдпрдореЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП --project рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛: TS 2.6 рдХреЗ рд╕рд╛рде, рдЖрдк рдХрдВрдкрд╛рдЗрд▓рд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП // @ts-ignore рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@adidahiya рдореИрдВ рдХреЗрд╡рд▓ рдЙрдкрд░реЛрдХреНрдд рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд░рд╣рд╛ рдерд╛ рдХрд┐ рджрд╛рд╡рд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдирд┐рдпрдо рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд▓рд┐рдВрдЯ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ рд░рдЦрдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред

рд▓реЗрдХрд┐рди рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдореБрджреНрджрд╛ vscode рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рд╣реИ, рди рдХрд┐ tslint рдХреЗ рд╕рд╛рдеред tbh рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЗрддрдиреЗ рд╕рд╛рд░реЗ рдореБрджреНрджреЗ рдереЗ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдордп рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХрд╣рд╛рдБред

рдЯрд┐рдк рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВред рдЬреИрд╕реЗ рд╣реА рд╣рдо 2.6 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВрдЧреЗ, рдореИрдВ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реЗрдЯрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рд╕реНрд╡рд┐рдЪ рдХрд░ рджреВрдВрдЧрд╛

рдпрд╣ рджрд╛рд╡рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдмрд┐рдВрджреБ рдПрдХ рд▓рд┐рдВрдЯ рдирд┐рдпрдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: рд▓рд┐рдВрдЯ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдореБрдЦ рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реИред

рдореБрдЭреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдирд╡реАрдирддрдо 1.19 рд╡реАрдПрд╕ рдХреЛрдб The 'no-unused-variable' rule requires type information рдореЗрдВ рдПрдХ рд╣реА рдЪреЗрддрд╛рд╡рдиреА рдорд┐рд▓ рд░рд╣реА рд╣реИ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)ред рдХреНрдпрд╛ рдореЗрд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣реА рд╣реИ?

{
  "extends": "tslint:recommended",
  "rules": {
    "linebreak-style": [true, "LF"],
    "quotemark": [true, "single", "avoid-escape", "avoid-template"],
    "no-console": false,
    "no-unused-expression": false,
    "ordered-imports": false,
    "member-access": [true, "no-public"],
    "object-literal-sort-keys": false,
    "curly": [true, "ignore-same-line"],
    "semicolon": [true, "never"],
    "no-var-requires": false,
    "no-unused-variable": true
  }
}

рдпрджрд┐ рдЖрдк VSCode 1.19 рд░реАрдбрдореА рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдФрд░ рдЕрдиреНрдп рдирд┐рдпрдореЛрдВ рдХреЛ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЯреНрд░реАрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ:

  • "no-unused-variable" рдХреЛ tslint.json рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ
  • рдЬреЛрдбрд╝рдиреЗ "noUnusedLocals" рд╣рдорд╛рд░реЗ рд▓рд┐рдП tsconfig.json

рдЕрдиреНрдп рдирд┐рдпрдо рдкрд╛рдардХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЫреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ ;-)

рдзреНрдпрд╛рди рджреЗрдВ, рдХрд┐ tslint рдпрд╣ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИ, рдЬрдмрдХрд┐ tsconfig VSCode рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред

рдореИрдВрдиреЗ no-unused-variable рдХреЛ рд╣рдЯрд╛рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реАрдПрд╕ 1.19 рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдирдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ VSCode рдХрд╛ рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рд▓реЗрдирд╛-рджреЗрдирд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ VSCode рдХреЛ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рдЕрдкрдиреЗ рд╡реЗрдмрдкреИрдХ рджреЗрд╡ рд╕рд░реНрд╡рд░ рд╡реЙрдЪ рдмрд┐рд▓реНрдб рдХреА рд╡рдЬрд╣ рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ no-unused-variable рд▓рд┐рдП рдХреЛрдИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реИ, рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд╕рдВрдкрд╛рджрдХреЛрдВ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реЛрдЧрд╛

  • рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
  • рд╕реАрдЖрдИ . рдХреЗ рджреМрд░рд╛рди рдЕрд╕рдлрд▓ рдирд┐рд░реНрдорд╛рдг

?

@pelotom , рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣рд╛рдВ VSCode TSLint рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реЗ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП https://github.com/Microsoft/vscode-tslint/issues/219 рд╕реЗред

рдЕрдм рддрдХ, TS рдХреБрдЫ рдореБрджреНрджреЛрдВ рдХреЛ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ (рдЧреНрд░реАрди рд╕реНрдХреНрд╡рд┐рдЧрд▓реНрд╕) рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рд▓рд┐рдВрдЯреНрд╕ (ESlint, TSLint) рд╕рдХреНрд╖рдо рдереЗред рдЗрд╕рд▓рд┐рдП рд╣рдо рдкреВрдЫ рд░рд╣реЗ рдереЗ рдХрд┐ TSlint рдЕрдкреНрд░рдпреБрдХреНрдд рдЪрд░реЛрдВ рдХреЛ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди 1.19 рддрдХ, VSCode рдХрд╛ TS рдпреЗ рдЪреЗрддрд╛рд╡рдиреА рджреЗ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдкреАрдЫреЗ рд╣рдЯ рд░рд╣реЗ рд╣реИрдВ

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

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

рдпрджрд┐ рдЖрдк VSCode 1.19 рд░реАрдбрдореА рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдФрд░ рдЕрдиреНрдп рдирд┐рдпрдореЛрдВ рдХреЛ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЯреНрд░реАрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рд╣реИред

@rnemec рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк "

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

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

рдЖрдк рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕реЗрдЯрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: "typescript.reportStyleChecksAsWarnings": falseред

рддреЛ рдпрд╣ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рд╣реИ рдФрд░ рдХреЗрд╡рд▓ VSCode рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╣реА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред tsc рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рдЕрдиреНрдп рдмрд┐рд▓реНрдб рдЯреВрд▓ рд╕реАрдзреЗ рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдпрджрд┐ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рд╡рд╣рд╛рдВ рдЫреЛрдбрд╝реА рдЧрдИ рд╣реИрдВред рдореЗрд░реЗ рдХреБрдЫ рд╕рд╣рдпреЛрдЧреА рд╣реИрдВ рдЬреЛ рдПрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдореИрдВрдиреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдФрд░ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рддреЛ рд╡реЗ рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред рд╕рд╣реА?

рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХреБрдЫ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдЗрди рдЪреАрдЬреЛрдВ рдХреЛ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рдХреИрд╕реЗ рд╣реИ рдпрджрд┐ рд╕рдВрдХрд▓рдХ рдЕрднреА рднреА рдЙрдиреНрд╣реЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИ?

рдФрд░ рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рддреЛ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд╕рдорд╛рдзрд╛рди рдпрд╛ рддреЛ tsc рдореЗрдВ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзреНрд╡рдЬ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ (рдЗрд╕реЗ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛), рдпрд╛ рдЗрди рдХрдВрдкрд╛рдЗрд▓рд░ рдЪреЗрдХ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ?

--- рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ ---
рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реА рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдирд╣реАрдВ рдкрдврд╝рд╛ред @pelotom рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣реА рдмрд╛рдд рдмрдирд╛ рд░рд╣рд╛ рдерд╛ред

рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд▓рд┐рдВрдЯ рдЪреЗрдХ рдХреА рдЧрдВрднреАрд░рддрд╛ рджреЗрд╡ рдореЛрдб рдмрдирд╛рдо рд╕реАрдЖрдИ рдореЛрдб рдореЗрдВ рдЕрд▓рдЧ рд╣реЛ, рддреЛ рдЖрдк рдЗрд╕реЗ рдХрдИ tslint.json рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдПрдХ extends рджреВрд╕рд░рд╛ред рдпрд╣рд╛рдВ рдпреВрдПрдХреНрд╕ рдХреЗ рд▓рд┐рдП #2569 рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдХреЗрд╡рд▓ рдПрдХ defaultSeverity рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдЧрдВрднреАрд░рддрд╛ рдХреЛ рдЯреЙрдЧрд▓ рдХрд░ рд╕рдХреЗрдВ - рдпрд╣ рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИред

@adidahiya рдЬрд┐рд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ рд╡рд╣ no-unused-variable рд▓рд┐рдВрдЯ рдирд┐рдпрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдерд┐рдд _replacement_ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ tsc рдХреЗ noUnusedLocals ред

@pelotom рдареАрдХ рд╣реИ, рдореБрдЭреЗ рд╡рд╣ рдорд┐рд▓ рдЧрдпрд╛ - рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ tsc рдЕрднреА рддрдХ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ tsconfig.json рдлрд╛рдЗрд▓реЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдЬрд╣рд╛рдВ рдПрдХ рджреВрд╕рд░реЗ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ "рдЧреИрд░-рдШрд╛рддрдХ" рдХрдВрдкрд╛рдЗрд▓рд░ рдЪреЗрдХ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, noUnusedLocals , noUnusedParameters ) рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╣реЛрдЧрд╛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЪреЗрдХреЛрдВ рдХреЛ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред

@adidahiya рд╣рд╛рдБ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рд╡реИрдз рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдирд╣реАрдВ рд╣реИред рдФрд░ рдореИрдВ рдПрдХ рд▓рд┐рдВрдЯ рдирд┐рдпрдо рдХреА рддрд░рд╣ рдЕрдзрд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП noUnusedLocals рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп VSCode рдореЗрдВ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП no-unused-variable рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЖрдИрдПрдордУ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЪреЗрдХ рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХреЛ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рд▓реЗрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрд▓рддреА рдереАред

рдФрд░ рдореИрдВ VSCode рдореЗрдВ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЛ-рдЕрдкреНрд░рдпреБрдХреНрдд-рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдмрдЬрд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдЯ рдирд┐рдпрдо рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП noUnusedLocals рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд▓рдХреНрд╖реНрдп рдРрд╕рд╛ рдХрд░рдирд╛ рд╣реИ: https://github.com/angelozerr/tslint-language-serviceред рдЖрдк рдЙрди рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдЙрд╕ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдореИрдВ рдмрд╣реБрдд рдЬрд▓реНрджреА рдмреЛрд▓ рдЧрдпрд╛ред рдЙрд╕ рдкреНрд▓рдЧрдЗрди рдХреЗ рдЙрдкрдпреЛрдЧреА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ https://github.com/palantir/tslint/issues/2649 рдкрд░ рдмреНрд▓реЙрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЯреНрд░реИрдХ рдХрд░реЗрдВред

@adidahiya рд╣рд╛рдБ, рдореИрдВ рдЗрд╕реЗ рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдЯреНрд░реИрдХ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдЗрд╕ рдкрд░ рдХреЛрдИ рднреА рд╕рдорд╛рдЪрд╛рд░? рдЗрд╕реЗ рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрд╛ рдирд╣реАрдВ?

@ рдлрд┐рд▓рд┐рдк-рдлрд░реНрд╕реНрдЯрдСрд░реНрдбрд░ рдиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрд░реЗ рд▓рд┐рдП --project tsconfig.json . рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛

tslint -c tslint.json --project tsconfig.json src/**/*.ts

рдиреЛ-рдЕрдкреНрд░рдпреБрдХреНрдд-рдЪрд░ рдЕрдм рдкрджрд╛рд╡рдирдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, #3918 рдФрд░ #3919 рджреЗрдЦреЗрдВ

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

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

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

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

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

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

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

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

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