是否有可能以某种方式省略never打字稿中类型的所有类型?我有一个类型,它采用其他两种类型,并根据值生成第三种类型,并将所有错误或不同值的元素设置为从不:
type MapForeignKeys<TExpandMap extends expandMap, TForeignKeys> = {
[Prop in keyof TExpandMap]:
TExpandMap[Prop] extends { association: 'belongsTo', instance: BaseModel, foreignKey: any }
? TExpandMap[Prop]['instance']['_creationAttributes'] | TExpandMap[Prop]['instance'] | TForeignKeys[TExpandMap[Prop]['foreignKey']]
: never
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用此类型时,输出包含应设置为 的属性never,而不是从类型定义中省略这些类型,因此这变得不可用。
可以在此游乐场链接中找到描述我的问题的简单示例
编辑:带有一些可重现问题示例的新链接
Ale*_* L. 15
省略键的可能方法之一是as映射类型中的 using 子句。
never您可以通过条件类型生成来过滤掉键
type OmitNever<T> = { [K in keyof T as T[K] extends never ? never : K]: T[K] }
Run Code Online (Sandbox Code Playgroud)
所以在这里我们用键替换具有never值的键never,最终它们被省略。
| 归档时间: |
|
| 查看次数: |
3697 次 |
| 最近记录: |