使用 Typescript,在 Visual Studio 中输入“.ts”文件,考虑以下声明:
export const foo = <T>(myObject: T) => myObject.toString();
这很好用,类型检查很好,一切都很好。
现在将完全相同的代码放入用于 JSX 和 React 的“.tsx”文件中。
Intellisense 非常沮丧并抱怨,因为它试图将 <T> 变成 React JSX 元素。但我的意图是让编译器将其视为泛型类型指示符。
编译器抱怨:
[gulp-typescript] 17008 JSX 元素“T”没有相应的结束标记。
我尝试了许多语法解决方法,试图让 IDE 和编译器都让我摆脱 JSX 并强制编译器将 <T> 理解为泛型,就像没有使用 JSX 一样。但我找不到神奇的酱汁来做到这一点。
有比我更聪明的人能解决这个问题吗?