import * as moment from 'moment';
import { logger } from './utils/logger';
const x: moment.Moment = moment();
logger.info(x.toString());
mit tslint.json
Konfiguration:
{
"extends": ["tslint:all", "tslint-eslint-rules", "tslint-config-prettier"],
"rules": {
"completed-docs": [false],
"member-ordering": [
true,
{
"order": [
"public-static-field",
"protected-static-field",
"private-static-field",
"public-instance-field",
"private-instance-field",
"public-constructor",
"protected-constructor",
"private-constructor",
"public-static-method",
"protected-static-method",
"private-static-method",
"public-instance-method",
"private-instance-method"
]
}
],
"no-implicit-dependencies": false,
"no-inferrable-types": false,
"no-null-keyword": false,
"prettier": [
true,
{
"bracketSpacing": true,
"jsxBracketSameLine": false,
"parser": "typescript",
"printWidth": 120,
"semi": true,
"singleQuote": true,
"tabWidth": 4,
"trailingComma": "all",
"useTabs": false
}
],
"variable-name": [true, "allow-leading-underscore", "allow-pascal-case", "ban-keywords", "check-format"]
},
"rulesDirectory": ["tslint-plugin-prettier"]
}
Gemeldete Fehler:
/Users/mrandolph/Projects/***/***/src/server/test.ts
ERROR: 4:26 no-unsafe-any Unsafe use of expression of type 'any'.
ERROR: 6:13 no-unsafe-any Unsafe use of expression of type 'any'.
Die Möglichkeit, moment.js zu verwenden. Ab sofort erkennt tslint es als Typ: any
, was zu Linting-Fehlern führt. Interessanterweise erhalte ich, wenn ich versuche, eine bestimmte Methode zu importieren, immer noch die gleichen No-Unsafe-Any-Fehler:
Beispiel:
import { duration, Duration } from 'moment';
import { logger } from './utils/logger';
const x: Duration = duration(1, 'week');
logger.info(x.toString());
Erzeugt Ausgabe:
/Users/mrandolph/Projects/***/***/src/server/test.ts
ERROR: 4:21 no-unsafe-any Unsafe use of expression of type 'any'.
ERROR: 6:13 no-unsafe-any Unsafe use of expression of type 'any'.
Nur ein Hinweis - .d.ts-Datei ist im Moment enthalten - keine Installation von @types erforderlich.
Nur ein Hinweis - .d.ts-Datei ist im Moment enthalten - keine Installation von @types erforderlich.
Danke, das wäre meine erste Frage gewesen.
tslint:all
aktiviert no-unused-variable
. Es ist bekannt, dass diese Regel andere typgeprüfte Regeln stört: #2736
Sie könnten versuchen, no-unused-variable
zu deaktivieren und zu sehen, ob die Fehler verschwinden.
Sie könnten versuchen, No-Unused-Variable zu deaktivieren und zu sehen, ob die Fehler verschwinden.
Das hat funktioniert. Aber was ist, wenn ich auch no-unused-variable
möchte? Warum scheint sich dies nur auf den Moment in meinem Projekt zu auswirken - ich habe viele andere Bibliotheken von Drittanbietern, die problemlos importieren.
Aber was ist, wenn ich auch no-unused-variable verwenden möchte?
Es gibt mehrere Möglichkeiten:
--noUnusedLocals
und --noUnusedParameters
no-unused-variable
, der zweite Lauf nur no-unused-variable
Warum scheint sich dies nur auf den Moment in meinem Projekt zu auswirken - ich habe viele andere Bibliotheken von Drittanbietern, die problemlos importieren.
Niemand weiß wirklich, was schief geht und warum. Die Regel bringt irgendwie die Interna des Typoskripts durcheinander.
Hilfreichster Kommentar
Es gibt mehrere Möglichkeiten:
--noUnusedLocals
und--noUnusedParameters
no-unused-variable
, der zweite Lauf nurno-unused-variable
Niemand weiß wirklich, was schief geht und warum. Die Regel bringt irgendwie die Interna des Typoskripts durcheinander.