У меня две проблемы при определении схемы с помощью mongoose и typcript.Вот мой код:
import { Document, Schema, Model, model} from "mongoose";
export interface IApplication {
id: number;
name: string;
virtualProperty: string;
}
interface IApplicationModel extends Document, IApplication {} //Problem 1
let ApplicationSchema: Schema = new Schema({
id: { type: Number, required: true, index: true, unique: true},
name: { type: String, required: true, trim: true },
});
ApplicationSchema.virtual('virtualProperty').get(function () {
return `${this.id}-${this.name}/`; // Problem 2
});
export const IApplication: Model<IApplicationModel> = model<IApplicationModel>("Application", ApplicationSchema);
Прежде всего:
interface IApplicationModel extends Document, IApplication {}
Typescript говорит мне, что:
error TS2320: Interface 'IApplicationModel' cannot simultaneously extend types 'Document' and 'IApplication'.
Named property 'id' of types 'Document' and 'IApplication' are not identical.
Итак, как изменить определение свойства id
?
Ошибка:
error TS2683: 'this' implicitly has type 'any' because it does not have a type annotation.
Как определить тип this
?