2017-09-16 1 views
0

Also versuche ich react-Redux mit Typoskript zu verwenden. Dies ist, was mein package.json sieht aus wieDuplikat Typen Fehler bei der Verwendung von react, reactdom und react-redux Typen zusammen

"dependencies": { 
     "@types/react-dom": "15.5.0", 
     "@types/react": "15.0.4", 
     "@types/react-redux": "4.4.39", 
     "axios": "0.16.2", 
     "react": "15.0.0", 
     "react-dom": "15.0.0", 
     "redux": "3.6.0", 
     "react-redux": "5.0.6", 
     "redux-thunk": "2.1.0", 
     "office-ui-fabric-react": "1.0.0" 
    } 

Wenn ich jetzt Garn installieren tun. Ich sehe, dass mehrere Reaktionstypen installiert werden. Einmal für @ types/React. Eine für @ types/React-redux und @ types/react-dom in jedem seiner eigenen node_modules-Ordner. Und die Version der Typen, die diese Module intern installieren, ist sehr unterschiedlich, wie ich in meiner gam.lock-Datei sehe.

Wenn ich versuche, dies zu kompilieren, erhalte ich die Fehler wie
Fehler TS2304: Kann nicht Namen ‚DetailedHTMLFactory‘ gefunden.
Nachfolgende Variablendeklarationen müssen den gleichen Typ haben

Der Fehler verschwindet, wenn ich alle verschachtelten @types duplizieren und halten nur teh Top-Level @ types/reagieren. Was ist ein besserer Weg, dies zu tun, so dass doppelte Probleme nicht auftreten?

Antwort

0

Also habe ich das schließlich durch Ausschluss von node_modules-Ordner behoben.

Setzen Sie "node_modules" in den Abschnitt "exclude" von tsconfig.json.

1

Da Sie yarn verwenden, kann die einfachste Richtung resolutions in der package.json Datei zu zwingen, bestimmte Versionen der Typisierungen finden https://github.com/yarnpkg/yarn/pull/4105

Anders als das benutzen Sie, welche bestimmte Versionen herauszufinden müssten von diesen Typings arbeiten miteinander. Betrachten Sie im Grunde @types/react-dom Abhängigkeitsliste und dann die gleiche Version von @types/react in Ihrem Projekt.

0

Sie sollten versuchen, Ihre node_modules Ordner zu entfernen, yarn cache clear ausführen und alles neu installieren. Es gibt ein Problem mit dem Typoskript-Repo über dieses Verhalten (ich habe kürzlich mit einem meiner Nebenprojekte darauf hingewiesen), dass ich versuchen werde, diese Antwort zu finden und zu verlinken.

+0

Nein, das funktioniert nicht – Abhik

Verwandte Themen