TypescriptはJSX構文をサポートしています。だから私は、伝統的な* .TSファイルで非常によく動作しますが、* .tsxものと全く発現を持っています。Typescript TSXと汎用パラメータ
const f = <T1>(arg1: T1) => <T2>(arg2: T2) => {
return { arg1, arg2 };
}
私は不思議それが* .tsxファイル内部の作業を行うようにする方法はありますか?あなたが代わりに関数式を使用することができ
TypescriptはJSX構文をサポートしています。だから私は、伝統的な* .TSファイルで非常によく動作しますが、* .tsxものと全く発現を持っています。Typescript TSXと汎用パラメータ
const f = <T1>(arg1: T1) => <T2>(arg2: T2) => {
return { arg1, arg2 };
}
私は不思議それが* .tsxファイル内部の作業を行うようにする方法はありますか?あなたが代わりに関数式を使用することができ
:
const f = function<T1>(arg1: T1) {
return function<T2>(arg2: T2) {
return { arg1, arg2 };
};
};
またはその代わりに、私はこの作品を発見しました:追記オン
const f = <T1, T2>(arg1: T1) => (arg2: T2) => {
return { arg1, arg2 };
};
を、時に罰金コンパイルされているようです複数の汎用パラメータが提供されますが、1つは提供されません。たとえば、ダミーの汎用パラメータを指定すると、次のようになります。
const f = <T1, Dummy>(arg1: T1) => {
return { arg1 };
};
これは間違いなく理想的です。 1つの汎用パラメータでこの作業を行う別の方法があるかもしれませんが、わかりません。
これは、あいまいさの問題を解析した結果です。これを明白にする1つのことは、T1
に明示的な制約を追加することです。このケースでは、あなたのコードは機能的に同等であるのでT1
よう
const f = <T1 extends {}>(arg1: T1) => {
return { arg1 };
}
型パラメータは暗黙のうちに、とにかく{}
の制約があります。
このソリューションを利用して、元の例の各矢印機能に適用することができます。