在大多数指南,聊天,教程等中,建议的键入Sequelize模型的方法是使用以下代码:
export interface IUserInstance extends Sequelize.Instance<IUserAttributes>, IUserAttributes {
prototype: {
verifyPassword: (password: string) => boolean;
};
}
这里的关键部分是Sequelize.Instance<
,在Sequelize v5 +中,您看到错误:
Namespace '".../node_modules/sequelize/types/index"' has no exported member 'Instance'.
我环顾四周,但没有找到解决方法。
**请参阅本指南的“ sequelize.define的用法”部分 http://docs.sequelizejs.com/manual/typescript
在使用define和typescript时,似乎没有明确的方法来处理关联。
任何帮助/建议将不胜感激。
参考文献:
关于, 埃米尔
答案 0 :(得分:0)
我在这个问题上进行了很多搜索,找到了解决方案,并使其适用于以下情况:
import sequelizeInstance from '..';
import { Model, DataTypes } from 'sequelize';
const config = {
tableName: 'User',
sequelize: sequelizeInstance,
};
class User extends Model {
id!: number;
firstName!: string;
lastName!: string;
/* some other properties*/
verifyPassword: (password: string) => boolean;
public readonly createdAt!: Date;
public readonly updatedAt!: Date;
}
User.init(
{
id: {
primaryKey: true,
type: DataTypes.INTEGER,
autoIncrement: true,
},
firstName: {
type: DataTypes.STRING,
},
lastName: {
type: DataTypes.STRING,
}
},
config,
);
User.prototype.verifyPassword = function(password: string) {
/* code here ... */
};
export default User;