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;

Gabriel Marcondes
quelle

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"
}
Nicholas Tower
quelle
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

Sudhakar RS
quelle