Capitalize
小于 1 分钟TC-Medium
Capitalize
题目
实现 Capitalize<T>
它将字符串的第一个字母转换为大写,其余字母保持原样。
例如
type capitalized = Capitalize<'hello world'> // expected to be 'Hello world'
解答
这里使用 TypeScript 的内置类型Uppercase
来实现。
type MyCapitalize<S extends string> = S extends `${infer First}${infer Rest}` ? `${Uppercase<First>}${Rest}`: S
这是不使用内置类型,而使用打表的方式实现。
interface ToUpperCase {
a: "A"
b: "B"
c: "C"
d: "D"
e: "E"
f: "F"
g: "G"
h: "H"
i: "I"
j: "J"
k: "K"
l: "L"
m: "M"
n: "N"
o: "O"
p: "P"
q: "Q"
r: "R"
s: "S"
t: "T"
u: "U"
v: "V"
w: "W"
x: "X"
y: "Y"
z: "Z"
}
type LowerCase = keyof ToUpperCase
type MyCapitalize<S extends string> = S extends `${infer First extends LowerCase}${infer Rest}` ? `${ToUpperCase[First]}${Rest}` : S