Tslint: рдкрд▓.рдЬреЗрдПрд╕ рдЖрдпрд╛рдд рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде

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

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

  • __TSLint рд╕рдВрд╕реНрдХрд░рдг__: 5.8.0
  • __рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг__: 2.6.1
  • __TSLint рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИ__: (рдПрдХ рдЪреБрдиреЗрдВ) рд╕реАрдПрд▓рдЖрдИ

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдкрдВрдХреНрддрд┐рдмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

import * as moment from 'moment';
import { logger } from './utils/logger';

const x: moment.Moment = moment();

logger.info(x.toString());

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

{
    "extends": ["tslint:all", "tslint-eslint-rules", "tslint-config-prettier"],
    "rules": {
        "completed-docs": [false],
        "member-ordering": [
            true,
            {
                "order": [
                    "public-static-field",
                    "protected-static-field",
                    "private-static-field",
                    "public-instance-field",
                    "private-instance-field",
                    "public-constructor",
                    "protected-constructor",
                    "private-constructor",
                    "public-static-method",
                    "protected-static-method",
                    "private-static-method",
                    "public-instance-method",
                    "private-instance-method"
                ]
            }
        ],
        "no-implicit-dependencies": false,
        "no-inferrable-types": false,
        "no-null-keyword": false,
        "prettier": [
            true,
            {
                "bracketSpacing": true,
                "jsxBracketSameLine": false,
                "parser": "typescript",
                "printWidth": 120,
                "semi": true,
                "singleQuote": true,
                "tabWidth": 4,
                "trailingComma": "all",
                "useTabs": false
            }
        ],
        "variable-name": [true, "allow-leading-underscore", "allow-pascal-case", "ban-keywords", "check-format"]
    },
    "rulesDirectory": ["tslint-plugin-prettier"]
}

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

рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЧрдИ рддреНрд░реБрдЯрд┐рдпрд╛рдВ:

/Users/mrandolph/Projects/***/***/src/server/test.ts
ERROR: 4:26   no-unsafe-any  Unsafe use of expression of type 'any'.
ERROR: 6:13   no-unsafe-any  Unsafe use of expression of type 'any'.

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

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

рдЙрджрд╛рд╣рд░рдг:

import { duration, Duration } from 'moment';
import { logger } from './utils/logger';

const x: Duration = duration(1, 'week');

logger.info(x.toString());

рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ:

/Users/mrandolph/Projects/***/***/src/server/test.ts
ERROR: 4:21   no-unsafe-any  Unsafe use of expression of type 'any'.
ERROR: 6:13   no-unsafe-any  Unsafe use of expression of type 'any'.

рдмрд╕ рдПрдХ рд╣реЗрдб рдЕрдк - .d.ts рдлрд╝рд╛рдЗрд▓ рдкрд▓ рдХреЗ рд╕рд╛рде рд╢рд╛рдорд┐рд▓ рд╣реИ - @types рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

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

рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдореИрдВ рдЕрдкреНрд░рдпреБрдХреНрдд-рдЪрд░ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ?

рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:

  • рд▓рд┐рдВрдЯ рдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд▓реНрдк --noUnusedLocals рдФрд░ --noUnusedParameters рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
  • рджреЛ рдмрд╛рд░ tslint рдЪрд▓рд╛рдПрдВ, рдкрд╣рд▓рд╛ рд░рди рдмрд┐рдирд╛ no-unused-variable , рджреВрд╕рд░рд╛ рд░рди рдХреЗрд╡рд▓ no-unused-variable
  • рдПрдХ рдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ https://github.com/ajafff/tslint-consistent-codestyle/blob/master/docs/no-unused.md рд▓рд┐рдЦрд╛ рдерд╛ (рдЕрдкреНрд░рдпреБрдХреНрдд рдирд┐рдЬреА рд╕рджрд╕реНрдпреЛрдВ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рддрд╛)

рдпрд╣ рдХреЗрд╡рд▓ рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрд▓ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХреНрдпреЛрдВ рдХрд░рддрд╛ рд╣реИ - рдореЗрд░реЗ рдкрд╛рд╕ рдХрдИ рдЕрдиреНрдп рддреГрддреАрдп рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ рдЬреЛ рдареАрдХ рд╕реЗ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреНрдпреЛрдВред рдирд┐рдпрдо рдХрд┐рд╕реА рддрд░рд╣ рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдХрд░рддрд╛ рд╣реИред

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

рдмрд╕ рдПрдХ рд╣реЗрдб рдЕрдк - .d.ts рдлрд╝рд╛рдЗрд▓ рдкрд▓ рдХреЗ рд╕рд╛рде рд╢рд╛рдорд┐рд▓ рд╣реИ - @types рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рдкреНрд░рд╢реНрди рд╣реЛрддрд╛ред

tslint:all рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ no-unused-variable ред рдпрд╣ рдирд┐рдпрдо рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪреЗрдХ рдХрд┐рдП рдЧрдП рдирд┐рдпрдореЛрдВ рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ: #2736
рдЖрдк no-unused-variable рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреВрд░ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред

рдЖрдк рдЕрдкреНрд░рдпреБрдХреНрдд-рдЪрд░ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреВрд░ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред

рд╡рд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдореИрдВ no-unused-variable рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ? рдпрд╣ рдХреЗрд╡рд▓ рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрд▓ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХреНрдпреЛрдВ рдХрд░рддрд╛ рд╣реИ - рдореЗрд░реЗ рдкрд╛рд╕ рдХрдИ рдЕрдиреНрдп рддреГрддреАрдп рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ рдЬреЛ рдареАрдХ рд╕реЗ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдореИрдВ рдЕрдкреНрд░рдпреБрдХреНрдд-рдЪрд░ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ?

рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:

  • рд▓рд┐рдВрдЯ рдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд▓реНрдк --noUnusedLocals рдФрд░ --noUnusedParameters рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
  • рджреЛ рдмрд╛рд░ tslint рдЪрд▓рд╛рдПрдВ, рдкрд╣рд▓рд╛ рд░рди рдмрд┐рдирд╛ no-unused-variable , рджреВрд╕рд░рд╛ рд░рди рдХреЗрд╡рд▓ no-unused-variable
  • рдПрдХ рдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ https://github.com/ajafff/tslint-consistent-codestyle/blob/master/docs/no-unused.md рд▓рд┐рдЦрд╛ рдерд╛ (рдЕрдкреНрд░рдпреБрдХреНрдд рдирд┐рдЬреА рд╕рджрд╕реНрдпреЛрдВ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рддрд╛)

рдпрд╣ рдХреЗрд╡рд▓ рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрд▓ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХреНрдпреЛрдВ рдХрд░рддрд╛ рд╣реИ - рдореЗрд░реЗ рдкрд╛рд╕ рдХрдИ рдЕрдиреНрдп рддреГрддреАрдп рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ рдЬреЛ рдареАрдХ рд╕реЗ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреНрдпреЛрдВред рдирд┐рдпрдо рдХрд┐рд╕реА рддрд░рд╣ рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдХрд░рддрд╛ рд╣реИред

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

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

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

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

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

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

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