【发布时间】:2017-04-11 11:57:26
【问题描述】:
我正在使用 mongoose 和 typescript 构建一个应用程序。这是我制作的一个简单模型:
import * as callbackMongoose from 'mongoose';
var mongoose = callbackMongoose;
mongoose.Promise = global.Promise;
const Schema = mongoose.Schema;
var userSchema = new Schema({
username: String,
email: String,
hash: String
});
export default mongoose.model('User', userSchema);
效果很好,但我需要在访问属性之前将每个文档转换为任何文档。我读了一个指南,说我可以这样做:
interface IUser extends mongoose.Document {
username: String;
email: String;
hash: String;
}
export default mongoose.model<IUser>('User', userSchema);
我的问题是猫鼬类型似乎没有属性Document。它也没有属性ObjectId。当我将猫鼬投射到任何成员并使用这些成员时,它工作得很好。这似乎是一个打字问题。
我是这样安装猫鼬打字的:
npm install @types/mongoose --save
这些类型确实适用于 Schema,并且它们适用于我使用的所有其他库。这些类型定义有问题吗?我做错了吗?
【问题讨论】:
标签: node.js typescript mongoose definitelytyped