【发布时间】:2022-01-24 02:12:24
【问题描述】:
我需要一个附加到我的 Schema 类型的转换方法。如何在不重复代码的情况下完成?如果我删除类方法asGrpcProgram 我得到以下错误:
src/programs/programs.controller.ts:129:30 - error TS2339: Property 'asGrpcProgram' does not exist on type 'Program'.
如果我删除分配给ProgramSchema.methods.asGrpcProgram 的函数表达式,在运行时调用该方法时会出现以下错误:
ERROR [RpcExceptionsHandler] program.asGrpcProgram is not a function
import { grpc } from 'lis-protobuf';
import { Document } from 'mongoose';
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
@Schema()
export class Program extends Document {
@Prop({ required: true })
name: string;
@Prop()
externalId: string;
@Prop([String])
skillIds: string[];
public asGrpcProgram(): grpc.Program {
const { id, name, externalId, skillIds } = this;
return { id, name, externalId, skillIds };
}
}
export const ProgramSchema = SchemaFactory.createForClass(Program);
ProgramSchema.methods.asGrpcProgram = function (): grpc.Program {
const { id, name, externalId, skillIds } = this;
return { id, name, externalId, skillIds };
};
【问题讨论】:
标签: mongoose nestjs mongoose-schema