2016-08-13 7 views
0

Angenommen, es gibt ein externes Modul, das eine React-Komponente exportiert hat. Dieses Modul hat keine Ablauferklärung. Ich möchte es erklären, um die Flussartprüfung zu ermöglichen.Wie deklariert React.Component Typ von externen Modul mit separaten Deklarationsdatei?

Zum Beispiel wird das Modul wie folgt definiert:

import React from 'react' 

class External extends React.Component { 
    static propTypes = { 
    name: React.PropTypes.string.isRequired 
    } 
    render() { 
    return <div></div> 
    } 
} 

Wenn ich schreibe, dass mein Selbst (internes Modul) Flowtype Lage sein wird, Requisiten zu erkennen, fehlt. Aber, da diese External Komponente von externem Modul exportiert wird. Flow führt keine Typprüfung durch. Also, ich muss separate Typ-Deklaration für dieses Modul erstellen. diese

Ich habe versucht:

// ./interfaces/the-external-module.js.flow 

declare module "the-external-module" { 
    declare export var External: React.Component; 
} 

Natürlich ist es nicht, weil funktioniert Reagieren nicht im Rahmen. Also, wie kann ich das External als React.Component in separaten Typ Deklarationsdatei deklarieren?

Antwort

1

Nach einigen der official definitions, verwenden Sie React$Component (definiert in der Quelle here); z.B.

declare module "the-external-module" { 
    declare export var External: React$Component; 
} 
+0

Das funktioniert. Aber bevor ich die Antwort akzeptiere, könntest du wenigstens ein Beispiel geben? Es kann zukünftigen Zuschauern helfen. –

+0

Sicher, ich habe ein Beispiel hinzugefügt – danharper

Verwandte Themen