以下为ChatGPT自动生成的解答,正确与否请自行判断。

BFE.devAI解答 - TypeScript 类型谜题
17. implement LastChar<T>

type LastChar<T extends string> = T extends `${infer _}${infer R}` ? R extends '' ? _ : LastChar<R> : never;

解析:

使用字符串模板类型来匹配输入的字符串类型T,如果可以将其拆分为某个字符串字面量的结尾部分(用变量R表示)和所剩余的部分(用变量_表示),那么就继续递归处理剩下的部分,否则输出类型为never。

需要注意的是,最后一步的结果如果没有匹配到任何子字符串,也就是输入的字符串类型T本身即为空字符串,则需要将结果类型定义为never。