Ich verwende den Microsoft TypeScript-React-Starter und habe diesen Kompilierfehler während Es sieht so aus, als hätte meine Ich benutze: Aktualisierung: Ich habe herausgefunden, dass das Entfernen der generischen Typen npm start
: setState
-Funktion eine falsche Signatur, aber ich bin mir nicht sicher, wie ich sie beheben soll. Hier ist mein Code: <{}, null>
den Fehler löscht. Aber ich würde immer noch gerne lernen, warum ich den Fehler bekommen habe.
TLDR; Der Status darf nicht null sein. Deklarieren Sie eine Schnittstelle dafür oder deklarieren Sie {}
Die Antwort liegt in @ types / react
Betrachtet man die Definition , geben weder Staat noch Requisiten an sollen nicht null sein.
Wenn Sie App
als class App extends React.Component<{}, null> {
deklariert haben, haben Sie im Wesentlichen gesagt: "state is of type null".
Nun hängt der Typ von setState
von dem Typ ab, den Sie für state angeben, und er kollidierte mit dem weniger bekannte Version von setState api . prevState
wird als {} deklariert (der Standard, da keine Schnittstelle für state angegeben wurde), der nicht mit null kompatibel ist und zu dem Fehlerprotokoll führt, das Sie gesehen haben.
Tags und Links reactjs typescript2.0