// code snippet
interface TypeConfig { }
[tslint] Schnittstellenname muss mit einem großen I beginnen (Schnittstellenname)
Microsoft schlägt vor, Schnittstellennamen nicht mit einem I voranzustellen -
Beachten Sie, dass dies die Richtlinien für das Schreiben des Typoskript-Compilers selbst sind. Es ist nicht als Styleguide für andere Typoskript-Projekte gedacht.
Wenn Sie diesen Styleguide für Ihre Projekte übernehmen möchten, ändern Sie einfach die Konfiguration der Regel in Ihrer tslint.json in "interface-name" : [true, "never"]
50 Cent von einem Passanten:
"interface-name" : [true, "never-prefix"]
statt
"interface-name" : [true, "never"]
🙌
Ich habe versucht, das Präfix "I" zu deaktivieren, indem ich dem Standardwert tslint.json
, der von Create React App generiert wird, den Schnittstellennamen hinzugefügt habe. Es scheint jedoch nicht zu funktionieren. Vielleicht setze ich es an der falschen Stelle ein?
{
"extends": [
"tslint:recommended",
"tslint-react",
"tslint-config-prettier"
],
"linterOptions": {
"exclude": [
"config/**/*.js",
"node_modules/**/*.ts"
]
},
"interface-name" : [true, "never-prefix"]
}
Egal, ich habe es herausgefunden:
{
"extends": [
"tslint:recommended",
"tslint-react",
"tslint-config-prettier"
],
"linterOptions": {
"exclude": [
"config/**/*.js",
"node_modules/**/*.ts"
]
},
"rules": {
"interface-name" : [true, "never-prefix"]
}
}
Aus irgendeinem Grund funktioniert "interface-name": [true, "never"]
bei mir nicht. Aber "interface-name": false
funktioniert gut
@vasilev-alex "interface-name": [true, "never-prefix"]
Betonung auf Nie- Präfix
Ich bekomme immer noch "interface name must start with a capitalized I"
das ist meine 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"
]
}
}
Was mache ich falsch?
@offg777 Nichts Offensichtliches. Link zum Repository?
Die Konfiguration sieht für mich richtig aus - sind Sie sicher, dass sie nichts anderes überschreibt? Bei mir funktioniert die Regel auf jeden Fall richtig
@offg777
"Schnittstellenname muss mit einem großen I beginnen"
Woher kommt dieser Fehler? Von Ihrer IDE oder beim Ausführen einer CLI?
Und ich kenne die genauen Kaskadierungsregeln von Tslint nicht, aber haben Sie versucht, den Block "Regeln" unter "Erweitert" zu setzen?
Groß
Unterstützt eslint das schon?
Einstellung
"rules": {
"interface-name": [
true,
"never-prefix"
]
},
ergibt sich
Configuration for rule "interface-name" is invalid
Gibt es diese Regel vielleicht aus einem bestimmten Grund? Sollte jede Schnittstelle einen aussagekräftigen Namen haben, der sich offensichtlich von einer implementierenden Klasse unterscheidet?
Das ist eine verdammt nervige Idee, den Rest der Welt zu zwingen, Ihren Vorlieben _außerhalb Ihres eigenen Projekts_ zu folgen. Das Aufbrechen eigener Namenskonventionen in Programmiertools ist ein Fehler des neuronalen Netzes der Produktentwickler ;)
Gut, dass TSLint veraltet ist und dieses Problem dann nicht mehr relevant ist! #4534
Hilfreichster Kommentar
Egal, ich habe es herausgefunden: