小编Bro*_*dan的帖子

创建一个代表字符串类型第一个字母的 TypeScript 类型

我有一个函数,可以输出传递给它的字符串的第一个字母。就我而言,我知道可能的值是什么,假设硬编码或通过泛型,并且希望 function\xe2\x80\x99s 返回类型与返回的字母完全相同,因此我可以将其传递给以后的功能。

\n

我实际上找到了一种相当不优雅的方法来做到这一点,但我有一种感觉,它 \xe2\x80\x99 不稳定,并且可能无法在 TypeScript 的未来版本中工作,因为从技术上讲可以表示${infer FirstLetter}任意数量的字符 \xe2\x80\ xa6 碰巧 TypeScript 目前只找到第一个:

\n
type Speed = \'fast\' | \'slow\' | \'medium\';\ntype SpeedShort = Speed extends `${infer FirstLetter}${string}`\n  ? FirstLetter\n  : never;\n
Run Code Online (Sandbox Code Playgroud)\n

作为函数声明,这可能看起来像:

\n
declare function firstLetter<Letters extends string>(\n  string: Letters,\n): Letters extends `${infer FirstLetter}${string}`\n  ? FirstLetter\n  : never;\n
Run Code Online (Sandbox Code Playgroud)\n

typescript typescript-types

5
推荐指数
1
解决办法
2068
查看次数

标签 统计

typescript ×1

typescript-types ×1