我正在尝试以数字形式获取字符串的长度:
type Length = LengthOfString<"hello">
// ^? should be 5
我不知道从哪里开始。我怎样才能做到这一点?
(我正在尝试了解有关 typescript 类型系统的更多信息 - 我不会将其应用于 JS 代码)
最佳答案
一种方法是使用模板文字字符串来分割字符串的每个字符。对于我们可以检索的每个字符,我们将一些元素附加到元组 L
中。
type LengthOfString<T extends string, L extends any[] = []> =
T extends `${string}${infer R}`
? LengthOfString<R, [...L, string]>
: L["length"]
当没有剩余的字符时,我们返回L
的length
结果:
type Length = LengthOfString<"hello">
// ^? 5
关于typescript - 如何使用 TypeScript 类型获取字符串的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74445734/