我正在使用,ts-mongoose
因此可以在一个地方为我的数据定义接口+模式。然后,我将它们导出为猫鼬模式+实际接口。
我遇到的问题是找到一种简单的第一步来提取没有所有“文档”方法和属性的接口。
我从github问题中将这两个编译在一起:
type ExtractDoc<T> = T extends Model<infer U> ? U : never;
type ExtractI<T> = Pick<T, Exclude<keyof T, keyof Document>>;
而且我一直在尝试写出可重用的东西来结合两者:
export type ExtractInterface<T> = ExtractI<ExtractDoc<T>>;
但是,当我尝试将其与架构一起使用时:
export type IExternalUser = ExtractInterface<ExternalUser>;
抛出: refers to a value, but is being used as a type here.
但是,如果我通过额外的2个步骤进行操作,它将可以正常工作,并且一切都会变得很顺利。
有一种方法可以通过仅调用1个可重用类型来提取干净接口?
您需要<typeof>
在<ExternalUser>
export type IExternalUser = ExtractInterface<typeof ExternalUser>;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句