eGl*_*Glu 5 sequelize.js typescript
在大多数指南、聊天、教程等中……输入 Sequelize 模型的推荐方法是使用以下代码:
export interface IUserInstance extends Sequelize.Instance<IUserAttributes>, IUserAttributes {
prototype: {
verifyPassword: (password: string) => boolean;
};
}
Run Code Online (Sandbox Code Playgroud)
这里的关键部分是Sequelize.Instance<,在 Sequelize v5+ 中,您会看到错误:
Namespace '".../node_modules/sequelize/types/index"' has no exported member 'Instance'.
Run Code Online (Sandbox Code Playgroud)
我环顾四周,但没有遇到解决方案。
** 查看本指南,“sequelize.define 的使用”部分 http://docs.sequelizejs.com/manual/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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3435 次 |
| 最近记录: |