typescript - 用动态数字推断模板字符串
问题描述
type Test = T extends `${infer Key}.${infer Rest}` ? Rest : never;
当您使用静态字符串进行推断时,此方法有效
Test<'test.test'> // 'test'
是否可以用动态数字正确推断?并可能将该动态数字视为字符串“0”
Test<`test.${number}`> // will result never
解决方案
您不能将动态数字传递给测试类型。只能基于创建的类型创建自定义类型。因此,可以正确推断,而不是使用动态数字而是使用类型。
type Test<T> = T extends `${infer Key}.${infer Rest}` ? Rest : never
type Value = 'value'
type Test1 = Test<`key.${Value}`> // 'value'
// or
const val: Value = 'value'
type Test2 = Test<`key.${typeof val}`> // 'value'
推荐阅读
- r - 我图例上的形状似乎与情节 ggplot2 中显示的顺序不同
- vba - 使用 VBA 计划任务检查数字签名是否仍然有效
- javascript - 无法让 NextJS ConfettiExplosion 工作:无效的挂钩调用
- amazon-s3 - 通过 API 网关上传文件的架构
- database - 3 个单独的表格或 1 个带有额外列的表格?
- database - OrientDB 中缺少记录 OUser
- apache - 即使在配置目录、文件 chmod 和 selinux 设置后也禁止 Apache 403
- python - try: VAR = ... except: VAR = ... finally: VAR - 局部变量 'VAR' 可能在赋值之前被引用
- c - 为什么暂定定义不会由于多个定义而导致错误?
- python - powerBI 中的 Pandas (Python)