Tslint: ์ง€์›๋˜๋Š” '์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ณ€์ˆ˜ ์—†์Œ' ๊ทœ์น™์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋จ

์— ๋งŒ๋“  2017๋…„ 09์›” 13์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: palantir/tslint

๋ฒ„๊ทธ ์‹ ๊ณ 

  • __TSLint ๋ฒ„์ „__:
$ $(yarn bin)/tslint --version
5.7.0
  • __TypeScript ๋ฒ„์ „__:
$ $(yarn bin)/tsc --version
Version 2.5.2
  • ____๋ฅผ ํ†ตํ•ด TSLint ์‹คํ–‰ํ•˜๊ธฐ: CLI

์‹ค์ œ ํ–‰๋™

๊ธฐ์กด ์ฝ”๋“œ ๊ธฐ๋ฐ˜์—์„œ tslint ๋ฅผ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

๋‚ด ํ”„๋กœ์ ํŠธ์—๋Š” no-unused-variable ๊ทœ์น™ ์„ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(์‚ฌ์ „ ์„ค์ •๊ณผ ์œ ์‚ฌํ•œ ํŒจํ‚ค์ง€ ์‚ฌ์šฉ์„ ํ†ตํ•ด).

๋‚ด ํ”„๋กœ์ ํŠธ์—๋Š” TypeScript์— ๋Œ€ํ•ด ํ™œ์„ฑํ™”๋œ noUnusedLocals ๋ฐ noUnusedParameters ์ปดํŒŒ์ผ๋Ÿฌ ์˜ต์…˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(์‚ฌ์ „ ์„ค์ •๊ณผ ์œ ์‚ฌํ•œ ํŒจํ‚ค์ง€ ์‚ฌ์šฉ์„ ํ†ตํ•ด).

๊ฐ€๋” ๊ทœ์น™์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  tslint ์˜ --fix ์˜ต์…˜์„ ์‹คํ–‰ํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ž๋™ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—๋Š” no-unused-variable ๊ทœ์น™์˜ ์ž๋™ ์ˆ˜์ • ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

๋‚ด ์ฝ”๋“œ ๊ธฐ๋ฐ˜์—์„œ tslint --fix ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ์˜ ์ถœ๋ ฅ ์˜ˆ:

$ $(yarn bin)/tslint --project tsconfig.json --config tslint.json --fix src/**/*.ts
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.
WARNING: 'no-unused-variable' lint rule does not need to be set if the 'no-unused-locals' and 'no-unused-parameters' compiler options are enabled.

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™

์—ฌ๊ธฐ ์— ์–ธ๊ธ‰๋œ ๊ฒƒ์ฒ˜๋Ÿผ no-unused-variable ๊ทœ์น™์€ ์‚ฌ์šฉ์ž(์ €๋ฅผ ํฌํ•จํ•˜์—ฌ)๊ฐ€ ์ž๋™ ์ˆ˜์ • ๊ธฐ๋Šฅ์˜ ์ด์ ์„ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๊ฒฝ๊ณ ๋Š” ๊ทœ์น™์„ ์ „ํ˜€ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๋ฉฐ ์ฝ˜์†”์— ๋ถˆํ•„์š”ํ•œ ์ถœ๋ ฅ์„ ๋งŽ์ด ๋ฐœ์ƒ์‹œ์ผœ ์ฝ”๋“œ์—์„œ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ ๋ฅผ ์—†์• ๋„ ๊ดœ์ฐฎ์„ ๊ฒƒ ๊ฐ™์•„์š”.

P3 Accepting PRs Bug

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ข‹์€ ์ง€์ ์ฒ˜๋Ÿผ ๋“ค๋ฆฌ๋Š” @destroyerofbuilds -- ์ฃผ๋กœ ์ž๋™ ์ˆ˜์ • ๊ธฐ๋Šฅ์— no-unused-variable ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๊ฒฝ๊ณ ๋Š” ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ฒฝ๊ณ (PR ์ˆ˜๋ฝ)๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ์‚ฌ์šฉ ํŒจํ„ด์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ๊ทœ์น™ ๋ฌธ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

๋‚˜์—๊ฒŒ no-unused-variable์€ ๋‹จ์ˆœํžˆ ์•„๋ฌด ๊ฒƒ๋„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค ;(
๋ฒ„์ „ 5.7.0

์ด๊ฒƒ์€ ๋‚ด ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค

{
    "extends": [
        "tslint:latest",
        "tslint-react",
        "tslint-config-prettier"
    ],
    "rules": {
        "ban-types": false,
        "interface-name": null,
        "interface-over-type-literal": false,
        "jsx-boolean-value": null,
        "jsx-no-lambda": null,
        "max-classes-per-file": [],
        "member-access": false,
        "no-namespace": null,
        "no-unused-expression": [false],
        "no-unused-variable": true,
        "no-var-requires": false,
        "object-literal-shorthand": false,
        "object-literal-sort-keys": false,
        "only-arrow-functions": null,
        "ordered-imports": null,
        "prefer-const": false,
        "variable-name": false,
        "no-invalid-template-strings": false,
        "no-submodule-imports": false
    }
}

์ข‹์€ ์ง€์ ์ฒ˜๋Ÿผ ๋“ค๋ฆฌ๋Š” @destroyerofbuilds -- ์ฃผ๋กœ ์ž๋™ ์ˆ˜์ • ๊ธฐ๋Šฅ์— no-unused-variable ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๊ฒฝ๊ณ ๋Š” ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ฒฝ๊ณ (PR ์ˆ˜๋ฝ)๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ์‚ฌ์šฉ ํŒจํ„ด์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ๊ทœ์น™ ๋ฌธ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@tomitreskak TSLint๋ฅผ ์–ด๋–ป๊ฒŒ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์€ ์›๋ž˜ ๊ฒŒ์‹œ๋ฌผ๊ณผ ๋ณ„๊ฐœ์˜ ๋ฌธ์ œ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. ์•„์ง ๋ฐœํ–‰ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋‹ค๋ฅธ ํ˜ธ๋ฅผ ์—ฌ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰