我想创建一个共享库以便在相关的 Express NestJS 应用程序中重用。为了做到这一点并获得输入/输出中嵌套对象的类型自省和示例,我正在努力维护导入的包中工作正常的信息。
这是当我直接在控制器上传递此类时在本地工作的示例。但是,当从仅导出此文件的文件运行此文件时,我丢失了示例+内省。我相信我的打字稿构建中存在错误,导致元数据/装饰器被删除,或者我的 api 文件中的嵌套构建存在问题,导致类型丢失。
我键入的响应类(缩写)在这里(在文件中或导入时相同):
export class ExtendedRelatedSubClass extends RelatedSubClass {
private static exampleSubClass: RelatedSubClass = getRelatedSubClassMock()
@ApiProperty({ example: ExtendedRelatedSubClass.exampleSubClass.randomProp })
public randomProp: string
}
export class ExtendedUserResponse extends UserResponse {
private static exampleUser: UserResponse = getUserMock()
@ApiProperty({ example: ExtendedAccountHolderResponse.exampleAccountHolder.address })
public address: ExtendedAddressResponse = new ExtendedAddressResponse()
@ApiProperty({ example: ExtendedAccountHolderResponse.exampleAccountHolder.legalInformation })
public relatedSubClass: ExtendedRelatedSubClass = new ExtendedRelatedSubClass()
}
Run Code Online (Sandbox Code Playgroud)
然后该类在控制器上使用,如下所示:
export const userFilteredProps = [
'randomSubClass',
] as const
export class FilteredUserResponse extends PickType(
ExtendedUserResponse,
userFilteredProps
) {} …
Run Code Online (Sandbox Code Playgroud)