Typescript 不使用';文件';?

Typescript 不使用';文件';?,typescript,mongoose,typescript-typings,Typescript,Mongoose,Typescript Typings,我使用的是ts mongoose,因此我可以在一个地方为我的数据定义接口+模式。然后我将它们导出为mongoose模式+实际接口 我遇到的问题是找到一种简单的一步方法来提取接口,而不需要所有的“文档”方法和属性 我从一期github中汇编了这两个版本: type ExtractDoc<T> = T extends Model<infer U> ? U : never; type ExtractI<T> = Pick<T, Exclude<keyof

我使用的是
ts mongoose
,因此我可以在一个地方为我的数据定义接口+模式。然后我将它们导出为mongoose模式+实际接口

我遇到的问题是找到一种简单的一步方法来提取接口,而不需要所有的“文档”方法和属性

我从一期github中汇编了这两个版本:

type ExtractDoc<T> = T extends Model<infer U> ? U : never;
type ExtractI<T> = Pick<T, Exclude<keyof T, keyof Document>>;
type ExtractDoc=T扩展模型?U:从来没有;
类型提取i=拾取;
我一直在尝试编写一个可重用的东西,将两者结合起来:

export type ExtractInterface<T> = ExtractI<ExtractDoc<T>>;
导出类型ExtractInterface=ExtractI;
但当我尝试将其用于模式时:

export type IExternalUser = ExtractInterface<ExternalUser>;
导出类型IExternalUser=ExtractInterface;
正在抛出:
引用一个值,但在这里用作类型。

但如果我用额外的两个步骤来做,它会起作用,一切都很好

有没有一种方法只需调用一个可重用类型就可以提取干净的接口?

您需要在
前面加一个

导出类型IExternalUser=ExtractInterface