使用打字稿对v5进行续编,model.d.ts文件应使用类型

时间:2019-04-19 06:47:20

标签: typescript sequelize.js

这是我从V4升级到V5后收到的错误消息。

我可以从库中注释掉未知部分,其他所有东西都可以正常运行。

  

node_modules / sequelize / types / lib / model.d.ts:108:29-错误TS1110:   预期的类型。

     

108方法:字符串| [string,... unknown []];

这是我典型的模型定义:

interface IAllergenExtend extends Model {
  id?: number;
  name: string;
  description: string;
  updatedAt?: string;
  createdAt?: string;
}

type AllergenModel = typeof Model &
  (new (values?: object, options?: BuildOptions) => IAllergenExtend) & {
    associate: (model: IDB) => any;
  };

const allergenFactory = (sequalize: Sequelize) => {
  const Allergen = (<AllergenModel>sequalize.define('Allergen', {
    id: {
      allowNull: false,
      autoIncrement: true,
      primaryKey: true,
      type: DataTypes.INTEGER
    },
    name: {
      allowNull: false,
      type: DataTypes.TEXT
    },
    description: {
      allowNull: false,
      type: DataTypes.TEXT
    }
  })) as AllergenModel;

  Allergen.associate = (model: IDB) => {
    Allergen.belongsToMany(model.Dish, {
      through: db.AllergenDish,
      foreignKey: 'allergenId',
      as: 'dishes'
    });
  };

  return Allergen;
};

export { allergenFactory, AllergenModel };

2 个答案:

答案 0 :(得分:2)

检查您的打字稿版本。我必须更新到4.27.34才能解决此问题。

答案 1 :(得分:0)

我具有TS版本3.7.2的Node 12.13.0,并且在使用Sequelize 5.21.2时收到此错误