Ich habe eine Frage bezüglich JSX und Typoskript-Integration. Angesichts der folgenden Code:Verwendung von ReactType mit JSX
interface Props {
component?: React.ReactType
}
class MyComponent extends React.Component<Props, void> {
render() {
var Comp = this.props.component
return (<Comp></Comp>)
}
}
ich: JSX element type 'Comp' does not have any construct or call signatures.
Wie kann ich dieses Problem beheben? Ein ähnlicher Code funktioniert gut in Javascript, wo component
Prop-Validator elementType
von react-prop-types hat, so dass es entweder eine Zeichenfolge oder eine Komponentenklasse sein könnte.
Aber ich möchte auch eine Zeichenfolge, es ist erlaubt, in Javascript zu reagieren. – user3250645
@ user3250645 dann sollten Sie kein Typoskript verwenden. Es gibt viele korrekte Programme, die Sie nicht eingeben können. Es ist ein Kompromiss, du verlierst ein bisschen Meinungsfreiheit, aber mehr Sicherheit. –
Das Problem hat nichts mit Typoskript als Sprache zu tun. Offensichtlich ist sein Typsystem flexibel genug, um auszudrücken, was benötigt wird (d. H. ReactType). Das Problem ist, dass JSX-Parser in Typescript JSX.Element-Klasse erwartet und ich weiß nicht, wie Brücke zwischen ReactType (was einfache Zeichenfolge bedeuten kann) und JSX.Element (die React.Component erwartet). Ich bin mir sicher, dass es möglich ist. – user3250645