0230. 内置字符串操作类型
1. 🎯 本节内容
- todo
2. 🫧 评价
- todo
3. 🤔 内置字符串操作类型有哪些?
3.1. Uppercase
将字符串转换为大写。
ts
type Uppercase<S extends string> = intrinsic
type Loud = Uppercase<'hello'> // 'HELLO'
type ShoutName = Uppercase<'TypeScript'> // 'TYPESCRIPT'
// 与模板字面量结合
type MakeConstant<T extends string> = Uppercase<`${T}_CONSTANT`>
type API_KEY = MakeConstant<'api'> // 'API_CONSTANT'1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
3.2. Lowercase
将字符串转换为小写。
ts
type Lowercase<S extends string> = intrinsic
type Quiet = Lowercase<'HELLO'> // 'hello'
type VariableName = Lowercase<'UserName'> // 'username'
// 实际应用
type ToSnakeCase<T extends string> = Lowercase<T>
type FileName = ToSnakeCase<'MyComponent'> // 'mycomponent'1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
3.3. Capitalize
将首字母大写。
ts
type Capitalize<S extends string> = intrinsic
type Title = Capitalize<'hello'> // 'Hello'
type PropertyName = Capitalize<'firstName'> // 'FirstName'
// 生成 getter 方法名
type Getter<T extends string> = `get${Capitalize<T>}`
type GetName = Getter<'name'> // 'getName'
type GetAge = Getter<'age'> // 'getAge'1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
3.4. Uncapitalize
将首字母小写。
ts
type Uncapitalize<S extends string> = intrinsic
type LowerFirst = Uncapitalize<'Hello'> // 'hello'
type CamelCase = Uncapitalize<'FirstName'> // 'firstName'
// 从类型名生成实例变量名
type InstanceName<T extends string> = Uncapitalize<T>
type UserVar = InstanceName<'User'> // 'user'1
2
3
4
5
6
7
8
2
3
4
5
6
7
8