Tslint: Aviso exibido para regra `no-unused-variable` com suporte

Criado em 13 set. 2017  ·  3Comentários  ·  Fonte: palantir/tslint

Relatório de erro

  • __TSLint version__:
$ $(yarn bin)/tslint --version
5.7.0
  • __TypeScript version__:
$ $(yarn bin)/tsc --version
Version 2.5.2
  • __ Executando TSLint via__: CLI

Comportamento real

Estou executando tslint sobre uma base de código existente.

Meu projeto tem o conjunto de regras no-unused-variable (por meio do uso de um pacote do tipo predefinido).

Meu projeto também tem as opções de compilador noUnusedLocals e noUnusedParameters habilitadas para TypeScript (contra, por meio do uso de um pacote do tipo predefinido).

Ocasionalmente, atualizo minhas regras e executo tslint a opção --fix para corrigir automaticamente meu código.

Isso inclui o benefício do recurso de correção automática da regra no-unused-variable .

Exemplo de saída ao executar tslint --fix na minha base de código:

$ $(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.

Comportamento esperado

Conforme observado aqui, a regra no-unused-variable não foi descontinuada porque os usuários (incluindo eu) se beneficiam do recurso de correção automática.

No entanto, o aviso implica que eu não deveria estar usando a regra de forma alguma e causa uma grande quantidade de saída desnecessária para o console, o que pode obscurecer outras informações importantes, como problemas não corrigíveis no código.

Acredito que não haveria problema em remover o aviso.

P3 Accepting PRs Bug

Comentários muito úteis

@destroyerofbuilds que parece um bom ponto - você está usando no-unused-variable principalmente para a funcionalidade de correção automática, então o aviso é irrelevante. Acho que devemos remover o aviso (aceitar PRs). Seria bom também atualizar os documentos de regras para descrever esse padrão de uso.

Todos 3 comentários

Para mim, a variável não não utilizada simplesmente não faz nada; (
Versão 5.7.0

Esta é a minha configuração

{
    "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 que parece um bom ponto - você está usando no-unused-variable principalmente para a funcionalidade de correção automática, então o aviso é irrelevante. Acho que devemos remover o aviso (aceitar PRs). Seria bom também atualizar os documentos de regras para descrever esse padrão de uso.

@tomitrescak, como você está executando o TSLint? Isso soa como um problema separado da postagem original; Eu o encorajaria a abrir outra edição, se ainda não o fez.

Esta página foi útil?
0 / 5 - 0 avaliações