TypeScript 在TS 4.2中使用联合类型进行类型松弛回归,

r3i60tvu  于 9个月前  发布在  TypeScript
关注(0)|答案(5)|浏览(95)

Bug报告

🔎 搜索词

  • union类型

🕗 版本与回归信息

  • bug存在于4.2版本
  • 在4.1版本中正常工作

⏯ Playground链接

https://www.typescriptlang.org/play?target=5&jsx=0&ts=4.2.3#code/FAFwngDgpgBAogSxACygJwPIGsA8AlKAZwFcAbEAPhgF4YBvGcaALhgCI4BJAFQAk48AfQwBpNgG4YaImRCsCJcjBgBfUJFiIU6OGjQB7NDl0G0VWgyZRWHHvyEC8GPBKkzyrE4bVX4SVEYKsgA08HqG5n7amLhB5FQAPlEBXkapFMDAAMb6AHaEIDBQ-jrhaDQwONwUABTopqzcAJSeJWipVeZUNXTAAJBWNlx8AoKOzmzB-dKKckVlUypNmTn5hQBmxLlZAIwVNS3J6Di5xAC2AEbooRw7bF30-QD0TzDEhAi5AOYwqKTQ5U22xACDyMAu0gAhlhCIxUIwNDBPut0FBtlBQkgkbDkaiACYwSGwgpoT5faZQEDENC5IptVI1W5sZZqbJ5AowIFZABM+0OWgCJ3OVzQNzgdwevT6LxgeIQ0iyIFIYDcVJpZLhsH0FwAVlBFTAAO6GGEUtW0qUDDRDOyjcYuKZ9PozWRDO6OtSs1YcrkAZj5rWiQsu13Y4vuNCoUpl7w1AAMiTBvSA40aTYQzdTacVogymYTYcmWSt2RstlkACwBo7tMo4JmS56vQ2oWmx76amsdOBURPSc0I6CYtZQSEE-TrGv4UI9zGFSGkQj6NNoU3OylZum5sqM8MsmDAIA
当使用union类型与辅助函数构造其中一个类型时,该类型的类型从 string value type 错误地松散到 string (func1)。直接返回形状(func2)或使用 as const (func3)可以修复它。此外,在简化并删除union(func4)时,它也开始工作。
这个问题在4.1版本中不存在,仅在4.2版本中出现错误。

f87krz0w

f87krz0w1#

这个bug是由#42038引起的。@ahejlsberg可能需要看一下。
在PR之前,{ type: "EITHER_OK", result: number }部分从推断候选集中移除,T被示例化为"E1"

von4xj4u

von4xj4u2#

我想调查一下。可以吗?

m1m5dgzv

m1m5dgzv3#

当然。

r8xiu3jd

r8xiu3jd4#

@Zzzen ,谢谢你。我会看一下的。

8fsztsew

8fsztsew5#

不确定是否是相同的错误,但症状相似 - ts playground

相关问题