我有一个用例,我想将字符串类型拆分为记录。
例子:
const string = "Thank you"
Run Code Online (Sandbox Code Playgroud)
我想把它转换成
Record<'Thank' | 'you', string>
Run Code Online (Sandbox Code Playgroud)
有什么简单的方法可以实现这一目标吗?
提前致谢
您需要使用模板文字类型
const MY_STRING = "Thank you";
type Split<S extends string, D extends string> =
string extends S ? string[] :
S extends '' ? [] :
S extends `${infer T}${D}${infer U}` ? [T, ...Split<U, D>] : [S];
type MY_STRING_PARTS_TUPLE = Split<typeof MY_STRING, ' '>
type MY_STRING_PARTS = MY_STRING_PARTS_TUPLE[number];
type MY_RECORD = Record<MY_STRING_PARTS, string>
Run Code Online (Sandbox Code Playgroud)
另请参见模板文字类型游乐场
| 归档时间: |
|
| 查看次数: |
908 次 |
| 最近记录: |