私はジェネリックでタイプされたReact成分を持っています。そのコンポーネントは、高次コンポーネント(この場合はredux-form)で拡張されます。ここに私のクラスのバック取り除いたバージョンだとHOCが適用されている:一般的なTypescriptの反応成分にHOCを使用する
import * as React from "react";
interface MyFormProps<D> {
prop: D;
form: string;
}
class MyForm<D> extends React.Component<MyFormProps<D>, {}> {
render(): JSX.Element {
return (
<form>
{this.props.prop}
</form>
);
}
}
export const ConnectedMyForm = reduxForm({} as Config<any, {}, {}>)(MyForm);
その後、私は別のコンポーネントで私のコンポーネントの型指定されたバージョンを作成してみてください。
import { ConnectedMyForm } from "./my-form";
interface FormType {
// Form props here
}
type TypedForm = new() => ConnectedMyForm<FormType>;
const TypedForm = ConnectedMyForm as TypedForm;
次のようにTSXにそれを使用することができるようにするために:
<TypedForm />
この方法は、HOCが適用されるが、ここで私が手に持っていない私が構築した別のコンポーネントに絶対に正常に動作します次のエラー:
オンtype TypedForm = new() => ConnectedMyForm<FormType>;
行。
これは、コンポーネントにHOC機能を適用した場合にのみ発生します。私はフォームの接続されたバージョンで一般的な型指定を指定していないので、それを推測しています。しかし、私はそのタイピングをどのように指定しますか?
私はあなたがしようとしているものを手に入れますが、フォームの小道具の1つにジェネリック型を与えようとしています。全体の小道具はジェネリックでオブジェクトします。 基本的には、フォームに表示されるデータの型として型を受け入れるフォームを作成しようとしています。分では、それはちょうど 'any'とタイプされています。これはうまくいきますが、フォームデータに適切な型を持たせるとよいでしょう。 – Simon
それとも、私は行方不明の何かがありますか? – Simon