// code snippet
interface TypeConfig { }
[tslint] le nom de l'interface doit commencer par un I majuscule (nom-interface)
Microsoft suggère que les noms d'interface ne soient pas préfixés par un I - https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines#names
Notez que ce sont les directives pour l'écriture du compilateur dactylographié lui-même. Il ne s'agit pas d'un guide de style pour tout autre projet dactylographié.
Si vous souhaitez adopter ce guide de style pour vos projets, vous pouvez simplement changer la configuration de la règle dans votre tslint.json en "interface-name" : [true, "never"]
50 centimes d'un passant :
"interface-name" : [true, "never-prefix"]
au lieu de
"interface-name" : [true, "never"]
??
J'ai essayé de désactiver le préfixe "I" en ajoutant le nom de l'interface au tslint.json
par défaut généré par Create React App. Cependant, cela ne semble pas fonctionner. Peut-être que je le mets au mauvais endroit ?
{
"extends": [
"tslint:recommended",
"tslint-react",
"tslint-config-prettier"
],
"linterOptions": {
"exclude": [
"config/**/*.js",
"node_modules/**/*.ts"
]
},
"interface-name" : [true, "never-prefix"]
}
C'est pas grave, j'ai compris :
{
"extends": [
"tslint:recommended",
"tslint-react",
"tslint-config-prettier"
],
"linterOptions": {
"exclude": [
"config/**/*.js",
"node_modules/**/*.ts"
]
},
"rules": {
"interface-name" : [true, "never-prefix"]
}
}
Pour une raison quelconque, "interface-name": [true, "never"]
ne fonctionne pas pour moi. Mais "interface-name": false
fonctionne bien
@vasilev-alex "interface-name": [true, "never-prefix"]
empasi sur jamais- préfixe
Je reçois toujours "interface name must start with a capitalized I"
voici mon 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'est-ce que je fais mal?
@offg777 Rien d'évident. Lien vers le dépôt ?
La configuration me semble correcte - êtes-vous sûr que rien d'autre ne la remplace ? La règle fonctionne vraiment correctement pour moi
@offg777
"le nom de l'interface doit commencer par un I majuscule"
D'où tenez-vous cette erreur ? Depuis votre IDE ou lors de l'exécution d'une CLI ?
Et je ne connais pas les règles de cascade exactes de tslint, mais avez-vous essayé de mettre le bloc "règles" sous "extends" ?
Super
Est-ce que eslint prend déjà en charge cela?
Réglage
"rules": {
"interface-name": [
true,
"never-prefix"
]
},
résulte en
Configuration for rule "interface-name" is invalid
Peut-être que cette règle existe pour une raison ? Chaque interface doit-elle avoir un nom significatif, évidemment différent d'une classe d'implémentation ?
C'est une idée agaçante de forcer le reste du monde à suivre vos préférences _en dehors de votre propre projet_. L'intrusion de vos propres conventions de nommage dans les outils de programmation est un bogue du réseau de neurones des développeurs de produits ;)
Heureusement que TSLint est obsolète et que ce problème n'est plus d'actualité, alors ! #4534
Commentaire le plus utile
C'est pas grave, j'ai compris :