【问题标题】:Did the syntax change for Typescript arrow functions with generics?带有泛型的 Typescript 箭头函数的语法是否发生了变化?
【发布时间】:2019-06-08 01:34:02
【问题描述】:

如上一题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 {}”以将该行带回上面的第一个 sn-p 时,编译器会接受它而不会出现任何错误。进一步测试表明该线路工作正常。

typescript 最近是否更改了此语法,因此具有泛型的箭头函数不再需要“扩展 {}”?

如果是这样,这是什么时候发生的?

【问题讨论】:

  • 你最近更新了 Typescript 吗?除非安装了不同的版本,否则它不能在本地更改。我安装了 3.2.2 和 2.9.2。后者为我抛出该错误,前者接受它。所以他们一定是在某个地方固定了
  • @Lex 确实意味着前者(即 3.2.2)在没有 extends {} 的情况下接受,但后者不接受?
  • 是的 3.2.2 接受它而没有 extends {} 不确定何时引入此更改

标签: typescript


【解决方案1】:

您在.ts 文件中吗?

.tsx 文件中,TypeScript 决定将 &lt;T&gt; 解析为 JSX 开始标签;但是,在.ts 文件中,JSX 是不允许的,因此 TypeScript 可以很好地将其解析为类型参数。

【讨论】:

    猜你喜欢
    • 2015-11-25
    • 2018-01-31
    • 2021-12-25
    • 2017-04-27
    • 2019-12-17
    • 2017-10-14
    • 1970-01-01
    • 2018-01-08
    相关资源
    最近更新 更多