使用 TypeScript 在 mongoose.Schema 的 `required` 字段中使用函数
Posted
技术标签:
【中文标题】使用 TypeScript 在 mongoose.Schema 的 `required` 字段中使用函数【英文标题】:Use function in `required` field in mongoose.Schema using TypeScript 【发布时间】:2020-05-29 05:56:37 【问题描述】:我正在尝试创建一个动态架构,其中需要基于另一个字段的值的字段。
示例架构:
const foo = new Schema(
status:
type: String,
default: "in_process"
,
route:
type: String,
default: ""
,
code:
type: Number,
default: 0,
required: function ()
return this.route === "Results";
,
);
当我这样做时,TS 会通知我这个错误:
Property 'route' does not exist on type 'Schema<any> | SchemaTypeOpts<any> | SchemaType'.
Property 'route' does not exist on type 'Schema<any>'.
我应该如何正确处理这种情况?
【问题讨论】:
【参考方案1】:interface Ifoo extends Document
status:string
route:string
code:number
const foo = new Schema(
status:
type: String,
default: "in_process"
,
route:
type: String,
default: ""
,
code:
type: Number,
default: 0,
required: function (this:Ifoo)
return this.route === "Results";
,
);
【讨论】:
嗨@user16348030,请考虑为您的答案添加一些解释。以上是关于使用 TypeScript 在 mongoose.Schema 的 `required` 字段中使用函数的主要内容,如果未能解决你的问题,请参考以下文章
无法在 NodeJS 中使用 Mongoose 和 Typescript 扩展基类
如何在 typescript 中使用 mongoose 在 mongodb 中插入数据?
使用 Typescript 在 Mongoose 中缺少子文档方法
使用 Typescript 在 Mongoose 中缺少子文档方法
使用`let cached = global.mongoose`时出现Next.js + Typescript + mongoose错误