使用Typescript和mongoose,我希望能够使用我的自定义模型类型。但是,我还没有找到一个模型的示例,该模型使用{
"message": "Success",
"obj": {
"_id": "596925d7ccf72260bc37a0df",
"firstName": "Test2"
}
}
ref为另一个文档键入属性。我正试图弄清楚如何做到目前为止还没有成功。
这就是我希望我的模型界面看起来像:
Schema.Types.ObjectId
当我在我的代码中实现此模型时,无论我如何键入import { Document, Schema, model, Model } from 'mongoose'
import ObjectId = Schema.Types.ObjectId
export interface ITask extends Document {
description: string
isActive: boolean
children: ObjectId[] | ITask[] // <-- any[] works but limits typing
}
export const UserSchema: Schema = new Schema({
description: String,
isActive: Boolean,
children: [{
type: ObjectId,
ref: 'Tasks'
}]
}, { collection: 'Tasks' })
export const Task: Model<ITask> = model<ITask>('Task', TaskSchema)
(当然除了interface
),Typescript都会抛出类型错误:
any
Mongoose将代码中的ObjectId类型作为其id的字符串或完全填充的对象处理。我希望能够同时期待这两种情况,但是这个特定的实例似乎并不喜欢那些。