node.js - 在 sequelize getter 和 setter 函数中使用“类型参数不可分配给类型参数”错误
问题描述
我正在尝试在本地运行基于 NodeJS 和 NestJS 的解决方案。我的主要问题是一大堆像这样的错误消息......
错误 TS2345:“totalShares”类型的参数不可分配给“get”类型的参数 | "设置" | "isNewRecord" | “续集” | “哪里” | “获取数据值” | “设置数据值” | “设置属性” | “改变” | "以前的" | “保存” | “重新加载” | “验证” | “更新” | ... 10 更多 ... | “hasHooks”。
117 返回 this.getDataValue('totalShares') || 0;
我从模型文件(typescript-sequelize)中得到这些错误,只要@Column 装饰器下有一个自定义 getter 和/或 setter。所以从像这样的片段中
@Column({
get(): number {
return this.getDataValue('totalShares') || 0;
},
})
totalShares: number;
从语法上看,这对我来说很好。我的第一个直觉是,这可能是由于包版本不匹配造成的,但经过一些简单的版本检查后,我觉得这不太可能了。
可能是什么问题?
解决方案
从docs 中显示的内容来看,getter 和 setter 看起来应该在装饰器之外完成,所以它应该如下所示:
@Column
get totalShares(): number {
return this.getDataValue('totalShares') || 0;
}
set totalShares(shares: number) {
this.setDataValue('totalShares', shares);
}
推荐阅读
- sql - 将 XML 文件导入 SQL Server 表时遇到问题
- python - 如何使用 try 块来捕获文件中没有足够的元素
- python - 是否可以解决 BrokenPipeError: [Errno 32] Broken pipe in LDA 模型?
- java - 如何从 django rest api 获取结果?
- python - 将矩阵到标量函数应用于大型矩阵
- android - 跨所有活动的浮动操作按钮,每个活动具有不同的实现
- git - 即使使用 ignore=all 也不会忽略 git 子模块
- multithreading - 消除线程本地内存的缓存侦听
- pandas - Pandas-Count plot- 从日期开始绘制年份
- chart.js - Chart.js 中特定点的 z-index