我正在尝试在本地运行基于 NodeJS 和 NestJS 的解决方案。我的主要问题是一大堆这样的错误消息......
error TS2345: Argument of type '"totalShares"' is not assignable to parameter of type '"get" | "set" | "isNewRecord" | "sequelize" | "where" | "getDataValue" | "setDataValue" | "setAttributes" | "changed" | "previous" | "save" | "reload" | "validate" | "update" | ... 10 more ... | "hasHooks"'.
117 return this.getDataValue('totalShares') || 0;
我从模型文件 (typescript-sequelize) 中得到这些错误,只要在 @Column 装饰器下有自定义的 getter 和/或 setter。所以从这样的片段
@Column({
get(): number {
return this.getDataValue('totalShares') || 0;
},
})
totalShares: number;
从语法上看,这对我来说很好。我的第一个直觉是,这可能是由包版本不匹配引起的,但经过一些轻量版本检查后,我似乎不再可能出现这种情况。可能是什么问题?
最佳答案
从 what's shown in the docs 看来,getter 和 setter 应该在装饰器之外完成,所以它应该是这样的:
@Column
get totalShares(): number {
return this.getDataValue('totalShares') || 0;
}
set totalShares(shares: number) {
this.setDataValue('totalShares', shares);
}
关于node.js - 在 sequelize getter 和 setter 函数中使用时出现 "Argument of type is not assignable to parameter of type"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65430950/