type a = never extends `${infer P}` ? P : 1 // never
type b = never extends `${infer P}/` ? P : 2 // string从不扩展所有东西,这就是为什么我们没有得到1或2
但是为什么a是从不,而b是string,这有什么意义?
我以为永远不会,因为${never}/是never,但是字符串?
那件事怎么可能?
发布于 2022-08-09 14:08:42
显然这是一个bug https://github.com/microsoft/TypeScript/issues/50215
从不扩展${infer P}/的行为是正确的,从不扩展${infer P}应该遵循它
发布于 2022-08-07 02:06:36
很可能是因为字符串内插技术上产生了一个字符串。例如,${infer P}/在末尾有一个斜杠,强制类型为字符串。另一个插值没有,所以类型检查器推断never。
https://stackoverflow.com/questions/73264352
复制相似问题