2017-12-25 5 views
0

aufrufen Ich versuche, eine Reaktion App mit Typoskript-Unterstützung mit create-react-app - Skripte-Version = react-Skripte-ts Befehl schreiben.Nicht in der Lage, super() innerhalb von Konstruktor() in Typoskript

ich diesen Fehler sehe immer wieder:

(23,15): error TS2345: Argument of type 'Props | undefined' is not assignable to parameter of type 'Props'. Type 'undefined' is not assignable to type 'Props'.

Der Code, dass dies herkommt, ist dies:

export class ScratchpadComponent extends React.Component<ScratchpadComponent.Props, ScratchpadComponent.State> { 

    constructor(props?: ScratchpadComponent.Props, context?: any) { 
     super(props, context); 
     this.submit = this.submit.bind(this); 
    } 

nicht sicher, was ist der Grund dafür - ich habe um gesucht und nicht Haben Sie viel Ahnung, wie Sie das beheben können?

Update:

Wenn ich das optionale entfernen? von der Konstruktorsignatur, dann beginne ich, diesen Fehler zu sehen:

18,11): error TS2322: Type '{}' is not assignable to type 'IntrinsicAttributes & IntrinsicClassAttributes<Component<Pick<Props, "dispatch" | "scratchPadActi...'. 
    Type '{}' is not assignable to type 'Readonly<Pick<Props, "dispatch" | "scratchPadActions" | "scratchData" | "errorMessage" | "errorDa...'. 
    Property 'dispatch' is missing in type '{}'. 

Antwort

1

Der Superklassenkonstruktor erwartet Requisiten als sein erstes Argument. Die Unterklasse Konstruktor kann ohne Argument aufgerufen werden, da Sie es als

erklärten
constructor(props?: ScratchpadComponent.Props, context?: any) 

und nicht als

constructor(props: ScratchpadComponent.Props, context?: any) 

Also, wenn der Anrufer kein Argument nicht besteht, dann Requisiten sind nicht definiert, und Sie versuchen, undefiniert zu dem Superkonstruktor zu gehen, der nicht undefiniert akzeptiert.

+0

Hey Ich habe nur die optionale Signatur aus der Komponentendefinition entfernt und habe meine Frage mit dem Fehler aktualisiert, den ich gerade sehe. Weißt du, wie du diesen Fehler loswerden kannst? –

Verwandte Themen