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/

10-11 11:32