当前位置: 首页 > 面试题库 >

猫鼬打字稿方式...?

李永寿
2023-03-14
问题内容

尝试在Typescript中实现Mongoose模型。对Google的调查只揭示了一种混合方法(结合JS和TS)。在没有JS的情况下,如何以我比较幼稚的方式实现User类呢?

希望能够不带行李的IUserModel。

import {IUser} from './user.ts';
import {Document, Schema, Model} from 'mongoose';

// mixing in a couple of interfaces
interface IUserDocument extends IUser,  Document {}

// mongoose, why oh why '[String]' 
// TODO: investigate out why mongoose needs its own data types
let userSchema: Schema = new Schema({
  userName  : String,
  password  : String,
  firstName : String,
  lastName  : String,
  email     : String,
  activated : Boolean,
  roles     : [String]
});

// interface we want to code to?
export interface IUserModel extends Model<IUserDocument> {/* any custom methods here */}

// stumped here
export class User {
  constructor() {}
}

问题答案:

这是我的方法:

export interface IUser extends mongoose.Document {
  name: string; 
  somethingElse?: number; 
};

export const UserSchema = new mongoose.Schema({
  name: {type:String, required: true},
  somethingElse: Number,
});

const User = mongoose.model<IUser>('User', UserSchema);
export default User;


 类似资料:
  • 我正在努力寻找 有什么不同?

  • 我试图在我的模型中添加一个静态方法,但是如果我这样做了,我得到了这个错误:< code >一个接口只能扩展一个类或另一个接口。 这是我的代码: 错误来自

  • 我有一个抽象类,它有一个抽象的泛型方法,看起来像这样 然后我有一个扩展这个抽象类的类。因为是抽象的,所以我必须在子类中实现它。 看起来像这样 返回 我得到以下错误虽然 类型'某物[]'不能分配给类型'T[]'。 我尝试了一些方法来解决这个错误,但是为了让Typescript满意,似乎还必须使子实现通用化。在我从至。 因此,我想知道如何使我的代码与TypeScript 2.4.1兼容?

  • 问题内容: 我对该方法的使用感到很困惑。这是我的用法,这是错误的: 我想要实现的只是从数据库中的事务中选择具有该用户名的事务,而我只想取出方法中列出的字段。谁能指出我该如何使用该方法?谢谢。 问题答案: 该文件说,你可以像这样实现的: 猫鼬v4.0 旧的过时的API 因此,您无需执行此操作。

  • 问题内容: 我希望能够实例化一个Typescript类,在运行时可以获取该类和构造函数的详细信息。我想编写的函数将包含类名和构造函数参数。 问题答案: 您可以尝试: 编辑 此版本可在TypeScript操场上使用,例如:

  • 问题内容: 我从Mongoose网站上阅读了快速入门,几乎复制了代码,但是无法使用Node.js连接MongoDB。 这是我的代码。控制台仅打印,不打印。我哪里错了? 问题答案: 调用时,它将建立与数据库的连接。 但是,您在以后的某个时间点(处理请求时)附加了事件侦听器,这意味着该连接可能已经处于活动状态,并且该事件已经被调用(您尚未监听它)。 。 您应该重新排列代码,以使事件处理程序尽可能(及时