Ich möchte, dass values
ein gemischtes Array von entweder einem object
oder einem number
.
// Violates 'array-type' rule
const values: (object | number)[] = []
// Violates 'prefer-array-literal' rule
const values: Array<object | number> = []
mit tslint.json
Konfiguration:
{
"extends": [
"tslint:latest",
"tslint-eslint-rules",
"tslint-config-airbnb"
]
}
Wie kann ich meinen Code schreiben, damit ich nicht gegen beide Regeln verstoße? Stehen diese beiden im Widerspruch zueinander und ich muss eine Regel aufgeben?
Es scheint, dass prefer-array-literal
einfach nicht mit der Standardkonfiguration für die Regel array-type
kompatibel ist. Diese Regel wird nicht von tslint verwaltet, sondern ist Teil von tslint-microsoft-contrib . Sie können die Option "array"
auf array-type
, damit sie zusammenarbeiten. Möglicherweise möchten Sie diesbezüglich ein Problem bei tslint-config-airbnb melden.
Für alle, die über die Google-Suche hierher gelangen, kann dies auch behoben werden, ohne die Regel array-type
zu ändern und die Array-Nutzung neu zu formatieren. Aktivieren Sie die Option allow-type-parameters
in prefer-array-literal
:
{
"rules": {
"prefer-array-literal": [true, { "allow-type-parameters": true }]
}
}
Schließen als extern. Zögern Sie nicht, ein Problem auf tslint-microsoft-contrib
zu posten!
Hilfreichster Kommentar
Für alle, die über die Google-Suche hierher gelangen, kann dies auch behoben werden, ohne die Regel
array-type
zu ändern und die Array-Nutzung neu zu formatieren. Aktivieren Sie die Optionallow-type-parameters
inprefer-array-literal
: