Sequelize 在 Typescript 中扩展模型类

ada*_*rie 6 sequelize.js typescript

我正在处理一个我们希望迁移到 Typescript 的遗留项目。它具有按以下格式定义的模型:

import Sequelize from "sequelize";

class MyModel extends Sequelize.Model {
  public static init(sequelize) {
    const attributes = {
      userId: {
        type: Sequelize.INTEGER,
        allowNull: false,
        field: "user_id"
      },
      createdAt: {
        type: Sequelize.DATE,
        field: "created_at"
      }
    };

    super.init(attributes, {
      sequelize
    });
  }
}

export default MyModel;
Run Code Online (Sandbox Code Playgroud)

我想将它们转换为打字稿,而不必更改消费者的界面。我的意思是我想扩展Sequelize.Model并定义一个public static init方法。

我从打字稿上收到以下错误 Sequelize.Model

Type 'Model<any, any>' is not a constructor function type.
Run Code Online (Sandbox Code Playgroud)

我所做的所有研究都指向Sequelize.define用于定义模型。

这是一个遗留项目,我不想为了符合类型而重写我的所有模型,所以我想知道如何正确扩展Sequelize.Model

谢谢

Sat*_*tya 1

尝试这个

public static init(sequelize) {
    super.init.call(this,{ 
        id: {
        type: DataTypes.INTEGER.UNSIGNED,
        autoIncrement: true,
        primaryKey: true,
        },  
        text: {
        type: DataTypes.STRING(5000) // extra long length
        }  
    }, {
        sequelize: sequelize
    });
}
Run Code Online (Sandbox Code Playgroud)