typescript - TypeScript - 在类型中存储元数据子类型而不影响类型
问题描述
我想知道是否可以在类型中存储一些类型元数据,以便可以使用类型函数提取它,而不会实际影响类型本身的值。
type Meta1<T> = { meta: T }
type GetMeta1<T> = T extends Meta1<infer R> ? R : never;
type type1 = number | Meta1<string>; // should be just number
type meta1 = Meta1<type1> // ok
// I tried with never, but unfortunately it does not work
type Never<T> = never;
type Meta2<T> = Never<T>
type GetMeta2<T> = T extends Meta2<infer R> ? R : never;
type type2 = number | Meta2<string>; // ok
type meta2 = Meta2<type2> // never
// It's possible to create a type to get the required type value
type GetValue<T> = T extends Meta1<unknown> ? never : T;
type type3 = GetValue<number | Meta1<string>> // number
// But I'm specifically looking for a solution where GetValue does not have to be used
// A solution where the meta type can be somehow extracted, yet does not affect the
// main type in a practical way
解决方案
推荐阅读
- java - 在网格布局中设置行和列大小
- android - Gradle 构建失败,未找到 keystore.properties
- alexa - 如何获取 Alexa 技能的插槽值的数量(长度)
- h3 - 六边形内的相关 hexids
- mysql - 我正在尝试使用外键约束连接两个表
- python - os.path.exists 返回不正确的结果
- c# - FluentValidator 扩展方法来检查实体是否存在于数据库中
- android - 没有互联网时如何显示警报对话框?
- objective-c - macos10.15beta 上是否修改了 SecKeyRawSign/SecKeyRawVerify API 实现?
- android - 父活动工具栏隐藏在子片段中