我有一个函数,可以输出传递给它的字符串的第一个字母。就我而言,我知道可能的值是什么,假设硬编码或通过泛型,并且希望 function\xe2\x80\x99s 返回类型与返回的字母完全相同,因此我可以将其传递给以后的功能。
\n我实际上找到了一种相当不优雅的方法来做到这一点,但我有一种感觉,它 \xe2\x80\x99 不稳定,并且可能无法在 TypeScript 的未来版本中工作,因为从技术上讲可以表示${infer FirstLetter}任意数量的字符 \xe2\x80\ xa6 碰巧 TypeScript 目前只找到第一个:
type Speed = \'fast\' | \'slow\' | \'medium\';\ntype SpeedShort = Speed extends `${infer FirstLetter}${string}`\n ? FirstLetter\n : never;\nRun Code Online (Sandbox Code Playgroud)\n作为函数声明,这可能看起来像:
\ndeclare function firstLetter<Letters extends string>(\n string: Letters,\n): Letters extends `${infer FirstLetter}${string}`\n ? FirstLetter\n : never;\nRun Code Online (Sandbox Code Playgroud)\n