我正在使用ts-mongoose
,所以我可以在1个地方为我的数据定义接口+模式。然后,我将它们导出为猫鼬模式+实际接口。
我遇到的问题是找到一种简单的第一步方法来提取没有所有“文档”方法和属性的接口。
我从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个步骤来执行此操作,它将可以正常工作,并且一切都会变甜。
是否有一种方法,只需调用一次可重用类型即可提取干净接口?
答案 0 :(得分:1)
您需要在#nonNullMethod
之前放置一个@Nullable
@Autowired
public void setServiceB(ServiceB service){
this.serviceB = service;
}