猫鼬和打字稿-无法创建称为别名的字段

时间:2019-12-16 01:00:19

标签: node.js typescript mongoose

我正在将项目移植到打字稿上,而我的模式存在一个别名字段,遇到了麻烦。我收到此错误:

Types of property 'alias' are incompatible.
Type 'StringConstructor' is not assignable to type 'string'.ts(2345)

我知道这是因为猫鼬具有别名字段(https://mongoosejs.com/docs/guide.html#aliases)。我的问题是,我该如何逃避?

我的参考代码:

import mongoose, { Schema, Model } from 'mongoose';

const userSchema = new Schema({
  _id: Schema.Types.ObjectId,
  alias: String
});

谢谢。

编辑:这也不起作用:

import mongoose, { Schema, Model } from 'mongoose';

const userSchema = new Schema({
  _id: Schema.Types.ObjectId,
  alias: {type: String, required: true}
});

出现此错误:

Types of property 'alias' are incompatible.
Type '{ type: string; required: boolean; }' is not assignable to type 'string'.ts(2345)

1 个答案:

答案 0 :(得分:0)

Type 'StringConstructor' is not assignable to type 'string'.ts(2345)

错误明确定义了:

您正在将字段Data Type分配给别名,但是alias应该被命名,而不是用来显示别名的字段的类型。

更改此内容:

alias: String

alias: "String" // <-这应该是类似于“ user_id”的名称或类似的名称