Die Syntax des ES2015-Moduls wird benutzerdefinierten TypeScript-Modulen und Namespaces @ typescript-eslint / no-namespace vorgezogen


8

Ich erhalte die folgende Fehlermeldung beim Ausführen von npm start:

Die Syntax des ES2015-Moduls wird benutzerdefinierten TypeScript-Modulen und Namespaces @ typescript-eslint / no-namespace vorgezogen

    namespace InternalThings {...}

Ich habe versucht, dies zu untersuchen, aber es ist sehr verwirrend.

Warum passiert das? Wie man es repariert?

Ich habe versucht, ein paar Flags auf meine tsconfig.json zu setzen, aber bisher kein Erfolg;

Antworten:


9

Dies ist ein Flusenfehler, der durch diese Flusenregel verursacht wird: https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-namespace.md

Wenn Sie die Regel sinnvoll und wollen , um es zu halten, dann werden Sie brauchen , um Ihren Code zu verwenden ändern importund exportstatt Namespace. In der Dokumentation der Regel finden Sie Informationen dazu, was als Fix gilt.

Wenn Ihnen die Regel gefällt, Sie die Regel für diese Zeile jedoch deaktivieren möchten, fügen Sie direkt darüber Folgendes hinzu:

// eslint-disable-next-line @typescript-eslint/no-namespace

Wenn Ihnen die Regel nicht gefällt und Sie sie vollständig deaktivieren möchten, bearbeiten Sie Ihre .eslintrc-Datei so, dass die folgende Zeile angezeigt wird:

rules: {
  "@typescript-eslint/no-namespace": "off"
}

2

Der Fehler kommt von eslint. Sie müssen entweder die Regel '@ typescript-eslint / no-namespace' in der Konfiguration ignorieren oder Ihren Code mit ES6 neu schreiben.

Benutzerdefinierte TypeScript-Module (Modul foo {}) und Namespaces (Namespace foo {}) gelten als veraltete Methoden zum Organisieren von TypeScript-Code. Die Syntax des ES2015-Moduls wird jetzt bevorzugt (Import / Export).

Siehe https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-namespace.md

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.