gpt4 book ai didi

typescript - 将 Sequelize.Instance 与 Sequelize v5 和 Typescript 一起使用

转载 作者:搜寻专家 更新时间:2023-10-30 21:55:49 42 4
gpt4 key购买 nike

在大多数指南、聊天、教程等中...推荐的键入 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 时,似乎没有明确的方法来处理关联。

如有任何帮助/建议,我们将不胜感激。

引用资料:

问候,埃米尔

最佳答案

我搜索了很多解决这个问题的方法,并通过以下方式解决了这个问题:

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;

关于typescript - 将 Sequelize.Instance 与 Sequelize v5 和 Typescript 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56752749/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com