如上一个问题What is the syntax for Typescript arrow functions with generics中所述,几天前Typescript编译器不接受:
const foo = <T>(x: T) => x
解决方法是使用:
const foo = <T extends {}>(x: T) => x
但是,昨天我注意到,当我删除“ extends {}”时,要将行带回到上面的第一个代码段中,编译器将接受它而不会出现任何错误。进一步测试表明该生产线工作正常。
打字稿最近是否更改了此语法,以使带有泛型的箭头功能不再需要“扩展{}”?
如果是这样,什么时候发生?
答案 0 :(得分:3)
您是否在.ts
文件中?
在.tsx
文件中,TypeScript决定将<T>
解析为JSX开头标记;但是,在.ts
文件中,不允许使用JSX,因此TypeScript可以很好地将其解析为类型参数。