Typescript: Fehler "Namespaces können nicht kompiliert werden" mit --isolatedModules und ohne Namespaces

Erstellt am 17. Apr. 2017  ·  52Kommentare  ·  Quelle: microsoft/TypeScript

TypeScript-Version: nightly (2.3.0-dev.20170417)

Code

function f() {}

Erwartetes Verhalten:

Kein Fehler oder eine Fehlermeldung zu einer Nicht-Modul-Datei in einem --isolatedModules -Projekt.

Tatsächliches Verhalten:

src/a.ts(1,1): error TS1208: Cannot compile namespaces when the '--isolatedModules' flag is provided.

Dies liegt daran, dass wir in program.ts verifyCompilerOptions nach einer Quelldatei suchen, die keine externe Moduldeklaration ist, und bei der ersten fehlschlagen, was auch immer sie sein mag.
Die Fehlermeldung sollte aktualisiert werden, um den wahren Grund für diesen Fehler widerzuspiegeln, und keine Namespaces.
Alternativ könnten wir einfach Dateien ohne Import zulassen und tatsächlich nach einem Namespace suchen, bevor wir diesen Fehler hinzufügen.

Bug Error Messages help wanted

Hilfreichster Kommentar

A global file cannot be compiled using '--isolatedModules'. Ensure your file contains imports, exports, or an 'export {}' statement.

Alle 52 Kommentare

Die Fehlermeldung muss klarer sein. Anstelle von namespaces kann non-module . @ DanielRosenwasser Empfehlungen?

In dieser Situation sollte keine Fehlermeldung angezeigt werden. Die Option --isolatedModules sollte das interne Modulsystem nur vollständig ausschalten. Wenn tsc immer noch auf diese Weise fehlerhaft ist, hat die Option ihre Aufgabe nicht erfüllt.

In # 15839 wollte ich das Überprüfungsverhalten ändern, stellte jedoch später fest, dass diese Überprüfung nur sinnlos ist und die ideale Lösung darin besteht, sie zu entfernen.
Typescript hat immer die Verwendung eines Namespace in einem externen Modul mit --isolatedModules aktiviert:

export function something() {} // export found, so this module is considered 'external'
namespace ns {} // namespace is still valid in an external module

Daher macht der Scheck in diesem (scheinbar ungültigen) Fall nichts, wenn er sich beschweren soll. Warum also beschweren, wenn der Programmierer nicht einmal einen Namespace verwendet und nichts falsch macht?

@wilonth Der Grund für dieses Problem ist, dass die Fehlermeldung falsch ist: Namespaces sind vollkommen in Ordnung, wenn sie Teil eines (es6) Moduls sind, aber jede Nicht-Modul-Datei sollte ein Fehler sein.

@ andy-ms Ich habe versucht darauf hinzuweisen, dass der gesamte Code zur Überprüfung auf diesen Fehler einfach sinnlos ist, und wir sollten ihn einfach entfernen, anstatt den Code weiter zu komplizieren.
Mein Punkt ist, wenn --isolatedModules ist, sollte jede Datei als externes (ES6) Modul betrachtet werden. In diesem Sinne sollte die Verwendung von Namespaces legal sein, da es derzeit vollkommen legal ist, Namespaces in ES6-Modulen zu verwenden (mit --isolatedModules aktiviert).

Mein Punkt ist, wenn --isolatedModules aktiviert ist, sollte jede Datei als externes (ES6) Modul betrachtet werden.

Die Semantik hier ist, dass ein Modul eine Datei mit mindestens einem Import oder Export der obersten Ebene ist. Es spielt keine Rolle, wie Sie den Compiler aufrufen.

@mhegazy Ja und diese Regel ist genau die Wurzel des Problems, das wir hier haben. Die Regel behandelt eine Datei ohne Import oder Export zu Unrecht als Teil des alten internen Modulsystems, sodass --isolatedModules die Datei ablehnt.
Jetzt sollten wir die Regel nicht ändern, da dies wahrscheinlich viele Dinge kaputt machen wird, aber wir können das aktuelle Problem sehr einfach lösen, indem wir diese Fehlermeldung entfernen.
Stellen wir uns vor, diese Fehlermeldung "Namespaces können nicht kompiliert werden" wird entfernt. Was könnte schief gehen? Was ist mit einer Codebasis, die ein internes Modul verwendet, wie den Typescript-Compiler selbst? Würde es mit --isolatedModules zu Müllcode kompilieren und den Benutzer verwirren? Nein, wird es nicht, es würde eine Menge Typescript-Fehlermeldungen zu undefinierten Symbolen geben, da --isolatedModules die Verknüpfungen zwischen den Dateien unterbrochen hat, was ziemlich offensichtlich zu verstehen ist.
Können Sie irgendwelche Nachteile beim Entfernen dieser Fehlermeldung finden? Ich konnte nicht. Warum sollten wir nicht die einfachste Lösung wählen, die keine Arbeit erfordert (entfernen Sie einfach die Linien) und keine Nachteile hat?

Würde es bei aktiviertem --isolatedModules zu Müllcode kompilieren und den Benutzer verwirren? Nein, wird es nicht

Ja, es wird.

Mit dem Flag --isolatedModules soll überprüft werden, ob ein Programm durch Transpilation einzelner Dateien erfolgreich kompiliert werden kann.

Die TypeScript-Codebasis kann nicht erfolgreich durch Transpilation einzelner Dateien kompiliert werden. Es gibt überall solchen Code:

Datei1

namespace ts {
  export var x = 10;
}

Datei2

namespace ts {
  var y = x; // transpiles to ts.x during whole-program compilation
}

Wenn wir die Datei2 in einer einzigen Datei transpilieren würden, würde sie kaputt gehen.

Mein schlechtes, ich habe meine Tests vermasselt. Ich ziehe hiermit meinen Vorschlag zurück. Vielen Dank an RyanCavanaugh für die Erinnerung.

Die Lösung sollte also sein: Erkennen Sie die tatsächliche Verwendung von Namespaces, bevor Sie diese Fehlermeldung ausgeben (dh die von @ andy-ms vorgeschlagene "alternative" Lösung). Wir können den Text nicht einfach in etwas anderes ändern, da eine Fehlermeldung in diesem Fall völlig falsch ist.
Ich möchte PR machen, aber kann ich hier trotzdem vertrauen, nachdem ich all diesen Mist ausgespuckt habe?

A global file cannot be compiled using '--isolatedModules'. Ensure your file contains imports, exports, or an 'export {}' statement.

Wenn wir die Datei2 in einer einzigen Datei transpilieren würden, würde sie kaputt gehen.

Entschuldigen Sie die Nekromantie, aber sicherlich sollte dies beim Targeting von Modulen mit so etwas wie 'x' is not defined fehlschlagen? Dieser Fall scheint mir nicht anders zu sein als das Triviale:

Datei1

var x = 10;

Datei2

var y = x;

Was auch funktioniert, wenn verkettet / global ausgewertet wird und nicht mit Modulen; nichts mit namespaces zu tun.

Warum errät Typoskript im Wesentlichen, dass Dateien ohne import oder export keine Module sind, wenn dies bereits aus der Compileroption module ? Beispielsweise wird Typescript selbst kompiliert, ohne module , sodass der Standardwert none , sodass der Compiler von einer Verkettung / globalen Auswertung ausgehen kann.

Wenn Sie --module <something> und nicht importierte Deklarationen aus anderen Dateien verwenden (einschließlich der Namespaces selbst), schlägt das Typoskript bereits mit "nicht definiert" vor --isolatedModules und danach mit export {} fehl

Ich habe bemerkt, dass Sie aus irgendeinem Grund immer noch import / export mit --module none --isolatedModules , was ziemlich verwirrend ist, möglicherweise ein Fehler?

@DanielRosenwasser als Endbenutzer: Was bedeutet "Eine globale Datei"? Ich mag die Anleitung. Vielleicht eher wie "Dateien ohne Import- oder Exportanweisungen sind keine Module und können nicht mit '--isolatedModules' kompiliert werden. Fügen Sie eine 'export {}' - Anweisung hinzu, wenn diese Datei nur auf ihre Nebenwirkungen hin bewertet wird." - obwohl die Sprache dort nicht sehr fehlerhaft erscheint.

Ich sehe den gleichen Fehler für ein einfaches js-Projekt. Ich habe gerade ein Beispiel für ein js-Projekt erstellt, das den Inhalt der Paket- und Skriptdateien enthält. Wie kann ich dieses Problem beheben?

Package.json
{
"plnkr": {
"Laufzeit": "System"
}}
}}

lib / script.js
// //
// Blackjack
// von Dheeraj Kumar
// //

let card1 = "Pik-Ass",
card2 = "Zehn der Herzen";

console.log ('Willkommen bei Blackjack!');

console.log ("Sie werden behandelt:");
conosle.log ("" + card1);
console.log ("" + card2);

Irgendwelche Updates dazu?

Ich mache das oft in kleinen Tests.

describe('jest', () => {
  it('finds this test', () => {
    expect(true).toBeTruthy();
  });

  it('parses this typescript', () => {
    const actual: number = 0;
    const expected: number = 0;
    expect(actual).toEqual(expected);
  });
});

export {
  // Use an empty export to please Babel's single file emit.
  // https://github.com/Microsoft/TypeScript/issues/15230
}

Ich möchte wirklich eine Option, die TypeScript veranlasst, jede .ts-Datei als ES6-Modul zu betrachten, unabhängig davon, ob sie Import / Export-Anweisungen enthält oder nicht. Ich habe ursprünglich angenommen, dass die Option --isolatedModules diese Option ist, aber sie verursacht diesen äußerst verwirrenden Fehler bei Dateien ohne Import / Export. (Ich verstehe immer noch nicht, was die Fehlermeldung unter Namespaces bedeutet. Ich glaube nicht, dass ich diese Funktion verwende.) Der Grund, warum ich diese Einstellung möchte, ist, dass TypeScript mehrere Probleme nicht behoben hat, weil ich versehentlich darauf verwiesen habe Eine Variable der obersten Ebene aus einer .ts-Datei in einer anderen (die beide keine Import / Export-Anweisungen hatten, sodass TypeScript sie nicht als ES6-Module behandelte), obwohl Node / Parcel / Webpack verwendet wurde, bei denen Dateien nicht aufeinander verweisen können solche nicht exportierten Variablen.

Ich bin hier gelandet, als ich versucht habe, eine Art Ärger zu beheben. Die folgenden Kommentare sollen nur anderen VS-Code-Benutzern helfen, die mit create-react-app und TypeScript nach diesem Fehler suchen.

Wenn Sie einen Proxy mit create-react-app 2.x und TypeScript setupProxy.js mit folgendem Code hinzu:

const proxy = require('http-proxy-middleware');
module.exports = function(app) { /* ... */ };

react-scripts liest diese Datei außerhalb des ts-Transpilationsprozesses, es muss also einfach js sein.

Dies funktioniert genau wie dokumentiert , hat jedoch eine störende Nebenwirkung.

Die von tsconfig.json generierten react-scripts enthalten alle Dateien in src , einschließlich setupProxy.js . Infolgedessen wird VS Code ausgelöst, um den Fehler Cannot compile namespaces... in setupProxy.js anzuzeigen, den Code mit einem roten Kringel zu markieren und in den Bereich Probleme aufzunehmen. In meinem Setup werden auch die Datei und alle ihre Vorgängerordner rot hervorgehoben.

Lösung: Unterdrücken Sie die VS-Code-Fehlermeldung, indem Sie die Datei setupProxy.js in tsconfig.json ausschließen.

{
  // ...
  "exclude": ["src/setupProxy.js"]
}

react-scripts erzwingt isolatedModules: true , aber es scheint nicht exclude zu überschreiben.

Alternative: Fügen Sie `setupProxy.js einen benannten Export hinzu:

export const _ = '';

Mit einem Export auf oberster Ebene ist es jetzt mit --isolatedModules gültig.

Sehr oft erhalten Entwickler diese Meldung, weil es Dateien gibt, die nicht in die Kopierung einbezogen werden sollten (gulp.js usw.)

ACHTUNG - Wenn Sie eine Create-React-App verwenden und dieses Problem so sehen, wie ich es bin ... Ich konnte dies umgehen, indem ich eine Änderung an meiner Datei tsconfig.json vorgenommen habe ....

Folgendes ändern

    "isolatedModules": true,

zu

    "isolatedModules": false,

@UncleFifi Und dann wechselt der Fehler von der Typprüfung zur Babel-Typoskript-Transformation, siehe die erste Einschränkung .

@jtbennett Sie können mit export {}; - der entarteten Form von export { name, localName as exportName }; - überhaupt nichts exportieren

@UncleFifi Und dann wechselt der Fehler von der Typprüfung zur Babel-Typoskript-Transformation, siehe die erste Einschränkung .

Nur wenn Sie tatsächlich Namespaces verwenden. In diesem Problem geht es hauptsächlich um diesen Fehler, der sich über Namespaces beschwert, wenn Sie nicht einmal Namespaces verwenden und zufällig eine legale Datei mit Import / Export haben.

Nur wenn Sie tatsächlich Namespaces verwenden. In diesem Problem geht es hauptsächlich um diesen Fehler, der sich über Namespaces beschwert, wenn Sie nicht einmal Namespaces verwenden und zufällig eine legale Datei mit Import / Export haben.

Richtig, sorry - es ist schon eine Weile her, seit ich diesen Thread gelesen habe! Der Grund, warum sie in CRA --isolatedModules ist, dass es die Einschränkungen des Babel-Typoskripts genau nachahmt (da Babel auch eine Transpilation einzelner Dateien ist). Sie sollten sich also zumindest bewusst sein, dass Sie diesen Schutz entfernen. Schiene.

Ist die aktuelle Lösung für den Fehler Cannot compile namespaces when --isolatedModules flag is provided das Hinzufügen von export {}; oben in der Datei?

Ja, das wird das Problem umgehen. (Angenommen, Sie verwenden nicht tatsächlich TypeScript namespace . Andernfalls haben Sie ein anderes und wahrscheinlich legitimes Problem.)

Ich bin gerade auf diese Nachricht gestoßen, weil eine Datei eine "leere" Datei war (dh die gesamte Datei wurde auskommentiert). Ich bin froh, dass TS dies erkannt hat, aber die Fehlermeldung war extrem undurchsichtig (und die Farben waren bei einer Vanilla CentOS 7-Installation fehlerhaft, aber dies ist wahrscheinlich auf den Webpack-Entwicklungsserver zurückzuführen, der nicht direkt mit TS zusammenhängt).

screen shot 2019-02-06 at 14 20 14

_Edit: kann nicht reproduzieren. Ich habe definitiv auf die Datei gestarrt, die nur aus drei Exporten der obersten Ebene besteht, und ich hatte diesen Fehler, aber leider habe ich irgendwo anders etwas falsch gemacht.

Dieser Fehler ist mir gerade bei einer Datei passiert, die Exporte der obersten Ebene enthält.

// Cannot compile namespaces:
export const foo = 'foo';

// Compiles fine
const foo = 'foo';
export { foo };

@ denis-sokolov Offensichtliche Frage: Haben Sie auch andere Inhalte in dieser Datei, z. B. Namespaces?

Wenn es buchstäblich nur das export const , würde meine zweite Vermutung sein, dass Typoskript in so etwas wie einem Webpack mit ts-loader verwendet wird und der Inhalt erst nach dem vorherigen Durchgang (z. B. babel-loader) angezeigt wird, der export erweitert

Ich kann es nicht mehr reproduzieren. Entschuldigung, @simonbuchan , für den Fehlalarm.

Keine Ahnung, warum ich diesen Fehler in dieser bestimmten Datei bekomme.
Andere Dateien verhalten sich gut

screen shot 2019-02-18 at 12 49 07
screen shot 2019-02-18 at 12 48 34

Ich bin in einer Situation, in der ich CRA TypeScript verwende und ein Paket importiere, das kein @types . Ich möchte ein declare module 'package' hinzufügen, um meine eigenen Typen bereitzustellen, kann diese Anweisung jedoch nicht in eine Moduldatei einfügen. Also erstelle ich types.ts , um die declare module -Anweisung dort zu platzieren. Jetzt bekomme ich diesen Fehler.

Wenn ich isolatedModules auf false überschreibe, ändert CRA dies sofort wieder für mich. Das ist keine Lösung.

Wenn ich der Datei types.ts export {} mit declare module hinzufüge, wird der Name des ungültigen Moduls erweitert. stattdessen. Dieser Fehler wird vermieden, indem die Deklaration in eine Nicht-Modul-Datei eingefügt wird. Durch diese erzwungene Einstellung von isolatedModules erzwingt CRA jedoch, dass jede Datei ein Modul ist!

Es gibt also einen kreisförmigen Weg, einen Fehler nur zu lösen, um auf einem anderen und zurück zu landen. Wie kann das gelöst werden?

@Bnaya Vermutlich verwenden die Dateien, die funktionieren, Import- oder Exportanweisungen? Verwenden Sie in Ihrem Code nur eines von require()/module.exports und import/export . Überprüfen Sie andernfalls, ob alle Ihre Dateien von tsconfig include abgedeckt sind (überprüfen Sie die Dokumente auf vollständige Details dazu

@TomasHubelbauer Moduldeklarationen sollten unter anderem aus diesem Grund in einer .d.ts sein.
Ich hatte nur CRA-Einstellungen, die ich entfernt habe, wieder hinzugefügt, nicht zurück geändert, aber vielleicht ist es für isolierte Module beharrlicher?

@simonbuchan Ich habe ein .d.ts ausprobiert, aber das hat auch bei mir nicht funktioniert. Ich werde berichten, warum genau, nicht sicher, was es war. Und tatsächlich hat CRA diese Einstellung für mich umgeschrieben.

@simonbuchan Ich habe alle oben genannten vor der Hand versucht - ohne Erfolg :(

@simonbuchan Hmm okay, also .d.ts funktioniert, ich kann das Modul dort deklarieren und eingeben . Der Grund, warum ich es ursprünglich aufgegeben habe, ist, dass ich für die Typisierungen, die ich in diesem Modul deklarieren möchte, auf andere Typisierungen verweisen muss, aber die Einführung von import in die Datei .d.ts führt dazu, dass es nicht mehr funktioniert. Ich weiß nicht, wie ich das beheben soll, aber das ist mein Mangel an TypeScript-Kenntnissen, der nichts mehr mit diesem Fehler zu tun hat.

Hier ist ein minimaler Repro-Fall unter Verwendung von typescript @ next (vollständiges Repo unter https://github.com/yang/sandbox-ts-namespaces-error):

src / a.js: (Hinweis, keine Import / Export-Schlüsselwörter erforderlich)

module.exports = "hello"; // you could really put anything here, e.g. console.log('hello');

tsconfig.js:

{
  "compilerOptions": {
    "allowJs": true,
    "isolatedModules": true,
    "noEmit": true,
    "strict": true
  },
  "include": ["src"]
}

Error:

$ ./node_modules/.bin/tsc
src/a.js:1:1 - error TS1208: Cannot compile namespaces when the '--isolatedModules' flag is provided.

1 module.exports = "hello";
  ~~~~~~


Found 1 error.

Auch ich bin dies zuerst über create-react-app --typescript begegnet, das Sie anweist, eine setupProxy.js (oder setupTests.js) zu erstellen. CRA setzt außerdem isolatedModules und allowJs auf true. Es scheint bis zu einer neueren Typoskript-Version kein Problem gewesen zu sein (ich habe unter Typoskript 3.1.x keine Fehler bei setupProxy.js gesehen, nur nach dem Update auf 3.2.x oder 3.3.x).

Die Problemumgehung beim Hinzufügen von .js-Dateien zu Ihrem Ausschlusssatz funktioniert beim Ausführen von tsc, aber - ärgerlicherweise - Sie sehen immer noch Fehler dieser Dateien in Editoren des TS-Sprachdienstes (sowohl VS Code als auch Webstorm ausprobiert). (Dies scheint ein separates und allgemeineres Problem zu sein, bei dem der TS-Sprachdienst Ausschlüsse nicht berücksichtigt. Ich konnte jedoch kein vorhandenes Problem dafür finden.) Um diesen Fehler in den Editoren zu maskieren, habe ich .d.ts-Dateien hinzugefügt für die * .js-Dateien.

Wenn Sie die .js-Dateien benötigen oder importieren, wird der Ausschluss ebenfalls unwirksam, sodass der Fehler (außerhalb Ihres Editors) ausgelöst wird.

Nur das Deaktivieren von allowJs (gegen das, was create-react-app vorschlägt) scheint für mich zu funktionieren.

Ich erhalte immer wieder diesen Fehler für meinen Web-Worker.

Ich habe versucht, die einzelnen Dateien oder Ordner auszuschließen, und es funktioniert bei mir nicht.

Gibt es keine Möglichkeit, diese isolierte Moduleinstellung zu überschreiben, schreibt CRA die Datei tsconfig.json immer wieder neu.

Irgendwelche anderen Vorschläge?

@jamespfarrell Fügen Sie export {}; irgendwo in Ihre Datei ein.

@ Macil danke für deinen Rat.

Ich erhalte diesen Fehler:

Versuchter Importfehler: './workers/HeartBeat.worker.js' enthält keinen Standardexport (importiert als 'HeartBeatWorker').

Wenn ich hinzufüge:

export default {};

Ich bekomme:

Nicht erfasster TypeError: _workers_HeartBeat_worker_js__WEBPACK_IMPORTED_MODULE_2 __. Standard ist kein Konstruktor

Gibt es nicht einfach eine Möglichkeit, diese "isolierten Module" zu umgehen, wenn nicht für eine Datei, selbst für alle Dateien?

Diese Fehler, die Sie jetzt erhalten, haben nichts mit der Einstellung "isolierte Module "zu tun. Wenn Sie isolierte Module deaktiviert haben, werden diese Fehler weiterhin angezeigt.

Versuchter Importfehler: './workers/HeartBeat.worker.js' enthält keinen Standardexport (importiert als 'HeartBeatWorker').

Wo passiert dieser Fehler? Es hört sich so an, als würden Sie versuchen, den Standardexport einer Datei zu importieren, die keine hat, z. B. import Foo from './workers/HeartBeat.worker.js'; . Wenn Sie keinen Standardexport importieren möchten, ändern Sie Ihre Importzeile in import './workers/HeartBeat.worker.js'; .

Du hast recht, es war etwas anderes @Macil ! Vielen Dank!

Möglicherweise hat jemand anderes das gleiche Problem: Ich hatte den gleichen Fehler bei einigen Dateien, die ich als Platzhalter ohne Inhalt hinterlassen habe, aber ich habe sie in andere Dateien importiert, d. H. Ich hatte eine leere Datei styles.js, die in eine andere Komponentendatei importiert wurde.

Einfach hinzufügen
image

Ich hatte diesen Fehler für eine Moduldefinition, bei der ich versehentlich .ts anstelle von .d.ts angehängt habe, wenn jemand anderes diesen bestimmten Fehler macht. Der Server muss nach dem Reparieren neu gestartet werden.

Gleicher Fehler. Ich benutze CRA

Konfrontiert dieses Problem auf CRA. Ich habe einfach vergessen, etwas aus der Datei zu exportieren:
Снимок экрана от 2019-04-22 22-24-04

Ich hatte diesen Fehler, weil ich eine .js -Datei im Stammordner meines Projekts hatte. In meiner tsconfig.json-Datei hatte ich Folgendes konfiguriert:

"compilerOptions": {
    ....
  },
  "include": ["src"],

Ich musste es dafür wechseln:

"compilerOptions": {
    ....
  },
  "include": ["src/*"],

Das hat es behoben, aber ich verstehe nicht warum, kann mir jemand das erklären? Mein Verständnis war, dass das Einschließen von src Root-Dateien und Geschwisterordner eliminieren würde.

@thitemple Hast du das / * Snippet irgendwo aus einem Artikel bekommen? Das Webpack-Handbuch scheint darauf hinzudeuten, dass das erste das richtige ist. Ich diagnostiziere ein ähnliches Problem und bin auf Ihren Beitrag gestoßen.

@ vort3xxx habe ich nicht. Ich habe diesen Beitrag https://github.com/microsoft/TypeScript/issues/15230#issuecomment -479730947 von @DaviSpindola gesehen und ausprobiert. Das war's

@ vort3xxx habe ich nicht. Ich habe diesen Beitrag # 15230 (Kommentar) von @DaviSpindola gesehen und ausprobiert. Das war's

Gleiches Problem, gleiche Lösung. TS 3.5.2.

@ ThomasdenH

@simonbuchan Ich habe ein .d.ts ausprobiert, aber das hat auch bei mir nicht funktioniert. Ich werde berichten, warum genau, nicht sicher, was es war. Und tatsächlich hat CRA diese Einstellung für mich umgeschrieben.

Auf genau das gleiche Problem stoßen. Haben Sie jemals herausgefunden, wie Sie das lösen können? Das Definieren von .ts oder .d.ts Deklarationsdateien in einer Create React App gibt den Fehler All files must be modules when the '--isolatedModules Flag zurück. Wenn Sie das Flag auf false oder die Eigenschaft isolatedModules entfernen, wird es beim Starten der React App vollständig auf true .
Das Hinzufügen von export {} am Ende der Deklarationsdatei führt zu dem Fehler: Invalid module name in augmentation. Module '...' resolves to an untyped module at '...' .

Jemand bitte helfen. Wie füge ich einem Projekt zum Erstellen einer Reaktionsanwendung benutzerdefinierte Deklarationsdateien hinzu?

Ich habe gerade herausgefunden, ob jemand das gleiche Problem hat. Fügen Sie einfach Ihre Deklarationstypen zur Datei react-app-env.d.ts im Quellordner hinzu, wenn Sie die App "React React" verwenden.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen