typescript 序列化定义模型引发打字错误

c0vxltue  于 2023-01-27  发布在  TypeScript
关注(0)|答案(1)|浏览(116)

我最近开始做我的一个老项目。我记得在我最后一次完成它之前一切都很好。但是现在有一个打字错误。

import { DataTypes } from 'sequelize'
import sequelizeConn from '../services/sequelize'
import { Model, InferAttributes, InferCreationAttributes } from 'sequelize'

interface EshopModelI extends Model<InferAttributes<EshopModelI>, InferCreationAttributes<EshopModelI>> {
    eshop_id: number
}

const EshopModel = sequelizeConn.define<EshopModelI>("eshop", {
    eshop_id: {
        type: DataTypes.INTEGER,
        primaryKey: true
    }
})
export default EshopModel
Type instantiation is excessively deep and possibly infinite.

但是一切看起来都很好。我试着从文档中复制示例,也发生了同样的错误。
所用软件包的版本

"sequelize": "^6.21.0",
"@types/node": "^17.0.43",
"nodemon": "^2.0.16",
"ts-node": "^10.8.1",
"typescript": "^4.7.3"

有人遇到过同样的问题吗?

9bfwbjaz

9bfwbjaz1#

此Sequelize实用程序类型已更新,以修复Typescript版本4.29引入的类型错误,因此您需要将您的sequelize版本升级到6.25.2或更高版本。我个人可以确认版本6.28.0解决了该问题(使用Typescript 4.9.4)。
以下是记录修复和时间轴的Sequelize问题:https://github.com/sequelize/sequelize/issues/15133
以下是包含该修复的版本:https://github.com/sequelize/sequelize/releases/tag/v6.25.2

相关问题