【发布时间】:2019-06-24 00:31:04
【问题描述】:
我正在尝试使用带有 typescript 的 mongoose virtuals。并且无法使其工作。我收到与在代码中使用它相关的错误。我检查了许多参考资料,但找不到参考资料来完成这项工作。
"[ts] 包含箭头函数捕获隐含类型为 'any' 的 'this' 的全局值。[7041]"
export const UserSchema = new Schema({
firstName: {
type: String
},
lastName: {
type: String
},
roleId: {
alias: "group",
type: String
}
}, {
toJSON: {
transform: (doc, ret, options) => {
delete ret.id ;
delete ret.roleId ;
return ret ;
},
virtuals: true,
}
});
UserSchema.virtual("username").get(() => {
return this.firstName + " " + this.lastName ;
}) ;
我期待一个新属性“username”,它结合了“firstName lastName”的值
替代代码但同样的错误 -
UserSchema.virtual("username").get(function() {
return this.firstName + " " + this.lastName ;
}) ;
【问题讨论】:
-
this的引用不能绑定在箭头函数中,它总是指向全局范围。如果您需要this来引用其他内容,请不要使用箭头函数。
标签: typescript mongoose