[英]Custom Decorator Typescript Mongoose
我正在尝试创建一个自定义 class 装饰器,它创建一个存储库 class 的实例,下面的代码片段代表“装饰器”和“存储库”。
import UserModel, { User } from "../models/user.model";
import AbstractRepository from "./abstract.repository";
import { Document, Model } from 'mongoose'
import { injectable } from "inversify";
export function Repository(service: Document): ClassDecorator {
return function (target: Function) {
}
}
@Repository(User)
export class TestRepository {
}
这个其他片段代表我的 mongoose 模型
import moongose, { Document, Schema } from 'mongoose'
export interface User extends Document {
name: String,
}
const UserSchema = new Schema<User>({
name: {
type: String
},
})
export default moongose.model<User>("user", UserSchema)
但是当我尝试使用我的自定义装饰器时,typescript 会抱怨一些东西并给出这个错误。
'User' only refers to a type, but is being used as a value here.ts(2693)
有人已经有这个问题,可以帮助我吗?
装饰器function Repository(service: Document) {}
的参数是 document 的一个实例,但您传递了一个类型User
。
@Repository(User)
应该是@Repository(new UserModel)
。
或者改变参数的类型
function Repository(service: Model<User>) {}
然后你可以像这样调用装饰器@Repository(UserModel)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.