首页 > 解决方案 > 使用 typescript 对 v5 进行续集,model.d.ts 文件的预期类型

问题描述

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

我可以从库中注释掉未知部分,其他一切都运行得很好。

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

108 方法:字符串 | [字符串,...未知[]];

这是我的典型模型定义:

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 };

标签: typescriptsequelize.js

解决方案


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


推荐阅读