Tslint: Advertencia mostrada para la regla admitida "no-no-unused-variable"

Creado en 13 sept. 2017  ·  3Comentarios  ·  Fuente: palantir/tslint

Informe de error

  • __TSLint versión__:
$ $(yarn bin)/tslint --version
5.7.0
  • __Versión de TypeScript__:
$ $(yarn bin)/tsc --version
Version 2.5.2
  • __Ejecutando TSLint vía__: CLI

Comportamiento real

Estoy ejecutando tslint sobre una base de código existente.

Mi proyecto tiene el conjunto de reglas no-unused-variable (mediante el uso de un paquete preestablecido).

Mi proyecto también tiene las opciones del compilador noUnusedLocals y noUnusedParameters habilitadas para TypeScript (contra, mediante el uso de un paquete preestablecido).

De vez en cuando actualizar mis reglas y corro tslint 's --fix opción de auto-corrección de mi código.

Eso incluye beneficiarse de la función de reparación automática de la regla no-unused-variable .

Salida de ejemplo al ejecutar tslint --fix en mi 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.

Comportamiento esperado

Como se señaló aquí, la regla no-unused-variable estaba en desuso porque los usuarios (incluido yo mismo) se benefician de la función de reparación automática.

Sin embargo, la advertencia implica que no debería usar la regla en absoluto, y genera una gran cantidad de resultados innecesarios en la consola, lo que puede ocultar otra información importante, como problemas no reparables en el código.

Creo que estaría bien eliminar la advertencia.

P3 Accepting PRs Bug

Comentario más útil

@destroyerofbuilds eso suena como un buen punto: está usando no-unused-variable principalmente para la funcionalidad de reparación automática, por lo que la advertencia es irrelevante. Creo que deberíamos eliminar la advertencia (aceptar RP). Sería bueno actualizar también los documentos de reglas para describir este patrón de uso.

Todos 3 comentarios

Para mí, la variable no-unused-simplemente no hace nada; (
Versión 5.7.0

Esta es mi configuración

{
    "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 eso suena como un buen punto: está usando no-unused-variable principalmente para la funcionalidad de reparación automática, por lo que la advertencia es irrelevante. Creo que deberíamos eliminar la advertencia (aceptar RP). Sería bueno actualizar también los documentos de reglas para describir este patrón de uso.

@tomitrescak ¿cómo está ejecutando TSLint? Eso suena como un tema separado de la publicación original; Le animo a que abra otro número si aún no lo ha hecho.

¿Fue útil esta página
0 / 5 - 0 calificaciones