Typescript引入了对JSX语法的支持。因此,我有一个表达式可以很好地与传统* .ts文件配合使用,而不能与* .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 };
};
在一个旁注中,当提供多个通用参数而不提供一个通用参数时,它似乎可以很好地编译。例如,提供一个伪通用参数将使这项工作:
const f = <T1, _>(arg1: T1) => {
return { arg1 };
};
// or just adding a comma
const g = <T1,>(arg1: T1) => {
return { arg1 };
};
但这绝对不是理想的。可能有另一种方法可以仅使用一个通用参数来实现此目的,但是我不确定。
关于generics - typescript TSX和通用参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32696475/