使用TypeScript,在Visual Studio中进行输入,将其输入到".ts"文件中,考虑以下声明:
export const foo = <T>(myObject: T) => myObject.toString();
这段代码工作得很好,类型检查也没有问题,一切都很棒。
现在把完全相同的代码放到一个用于JSX和React的".tsx"文件中。
Intellisense变得非常不满并且抱怨了,因为它试图将<T>转换为React JSX元素。但我的意图是让编译器将其视为通用类型标识符。
编译器会报错:
[gulp-typescript] 17008 JSX element 'T' has no corresponding closing tag.
我尝试了许多语法上的变通方法来让IDE和编译器都允许我逃离JSX,并强制将<T>理解为通用类型,就像如果没有使用JSX一样。但我找不到任何魔法般的方法来实现这一点。
有比我聪明的人能够解决这个问题吗?