javascript - typescript 模板字符串结合 infer 问题?

 

问题描述:

先来一段正常的 typescript 代码

type Q1 = '-open-flag' extends `${infer L}-${infer R1}${infer R2}` ? true : false

结果是 true , 在这个例子中 infer L 是一个 "" , infer R1 是一个 "o" , infer R2 是一个 "pen-flag"
extends 要想成立需要满足2个条件 字面量类型-(横杠)存在并且三个infer至少有一个infer可以取到类型。

为什么下面这个例子的类型是 "abc abc abc "

type Q2 = "lag" extends `${infer L}-${infer R1}${infer R2}` ? true : L;

 

第 1 个答案:

正如你所说:

extends 要想成立需要满足2个条件 字面量类型-(横杠)存在并且三个infer至少有一个infer可以取到类型

但是 LR1R2 三个变量只能在 extends 成立的分支中使用,而在第二个例子中,显然不会走到成立的分支,所以类型 Q2 应该是会报错的。


用了网上的方法还是不行.ssh的config 文件也配置了Host debian11HostName 192.168.136.136User rootIdentityFile F:\\work\\git\\ ...