Tslint: Las pautas de codificación de TypeScript dicen que no se debe prefijar la interfaz con I

Creado en 30 sept. 2017  ·  15Comentarios  ·  Fuente: palantir/tslint

Informe de error

  • __TSLint versión__: 3.15.1
  • __Versión de TypeScript__: 2.5.3
  • __Ejecutando TSLint a través de__: (elija uno) CLI

El código de TypeScript está entretejido

// code snippet
interface TypeConfig { }

Comportamiento real

[tslint] el nombre de la interfaz debe comenzar con una I en mayúscula (nombre de la interfaz)

Microsoft sugiere que los nombres de las interfaces no tengan el prefijo I: https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines#names

Question

Comentario más útil

No importa, lo descubrí:

{
  "extends": [
    "tslint:recommended",
    "tslint-react",
    "tslint-config-prettier"
  ],
  "linterOptions": {
    "exclude": [
      "config/**/*.js",
      "node_modules/**/*.ts"
    ]
  },
  "rules": {
    "interface-name" : [true, "never-prefix"]
  }
}

Todos 15 comentarios

Tenga en cuenta que estas son las pautas para escribir el compilador mecanografiado en sí. No pretende ser una guía de estilo para ningún otro proyecto mecanografiado.
Si desea adoptar esta guía de estilo para sus proyectos, puede cambiar la configuración de la regla en su tslint.json a "interface-name" : [true, "never"]

50 centavos de un transeúnte:
"interface-name" : [true, "never-prefix"] lugar de
"interface-name" : [true, "never"]
🙌

documentos de reglas

Intenté desactivar el prefijo "I" agregando interface-name al valor predeterminado tslint.json que genera la aplicación Create React. Sin embargo, no parece funcionar. ¿Quizás lo estoy poniendo en el lugar equivocado?

{
  "extends": [
    "tslint:recommended",
    "tslint-react",
    "tslint-config-prettier"
  ],
  "linterOptions": {
    "exclude": [
      "config/**/*.js",
      "node_modules/**/*.ts"
    ]
  },
  "interface-name" : [true, "never-prefix"]
}

No importa, lo descubrí:

{
  "extends": [
    "tslint:recommended",
    "tslint-react",
    "tslint-config-prettier"
  ],
  "linterOptions": {
    "exclude": [
      "config/**/*.js",
      "node_modules/**/*.ts"
    ]
  },
  "rules": {
    "interface-name" : [true, "never-prefix"]
  }
}

Por alguna razón, "interface-name": [true, "never"] no me funciona. Pero "interface-name": false funciona bien

@ vasilev-alex "interface-name": [true, "never-prefix"] empasis en prefijo nunca

Sigo recibiendo "interface name must start with a capitalized I"

este es mi tslint.json:

{
  "rules": {
    "interface-name": [
      true,
      "never-prefix"
    ]
  },
  "extends": [
    "tslint:recommended",
    "tslint-react",
    "tslint-config-prettier"
  ],
  "linterOptions": {
    "exclude": [
      "config/**/*.js",
      "node_modules/**/*.ts",
      "coverage/lcov-report/*.js"
    ]
  }
}

¿Qué estoy haciendo mal?

@ offg777 Nada obvio. ¿Enlace al repositorio?

La configuración me parece correcta, ¿estás seguro de que no hay nada más que la anule? La regla definitivamente funciona correctamente para mí.

@ offg777

"el nombre de la interfaz debe comenzar con una I en mayúscula"

¿De dónde sacas este error? ¿Desde su IDE o cuando ejecuta una CLI?
Y no sé acerca de las reglas en cascada exactas de tslint, pero ¿ha intentado poner el bloque "reglas" debajo de "extiende"?

Excelente

¿Eslint ya lo admite?

Configuración

"rules": {
    "interface-name": [
      true,
      "never-prefix"
    ]
  },

resultados en
Configuration for rule "interface-name" is invalid

¿Quizás esta regla existe por alguna razón? ¿Debería cada interfaz tener un nombre significativo obviamente diferente de una clase de implementación?

Esta es una maldita idea molesta de obligar al resto del mundo a seguir tus preferencias _ fuera de tu propio proyecto_. La obstrucción de sus propias convenciones de nomenclatura en las herramientas de programación es un error de la red neuronal del desarrollador del producto;)

¡Menos mal que TSLint está obsoleto y este problema ya no es relevante! # 4534

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

Temas relacionados

SwintDC picture SwintDC  ·  3Comentarios

allbto picture allbto  ·  3Comentarios

denkomanceski picture denkomanceski  ·  3Comentarios

rajinder-yadav picture rajinder-yadav  ·  3Comentarios

cateyes99 picture cateyes99  ·  3Comentarios