Sha*_*ech 7 model node.js sequelize.js typescript
我想扩展 Sequelize Model 类以添加其他实例方法,但打字稿不断抱怨“类型‘模型’上不存在属性‘原型’”
const MyModel = (sequelize: Sequelize.Sequelize, dataTypes: Sequelize.DataTypes) => {
const User = sequelize.define<Instance, Attribute>(
"users",
{
id: {
type: dataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
email: {
type: dataTypes.STRING
},
...
},
{
tableName: "users",
...
},
);
User.prototype.verifyUser = function(password: string) {
...
};
return User;
};
Run Code Online (Sandbox Code Playgroud)
我希望User.prototype.verifyUser能工作,但打字稿抱怨。如何添加到打字?
我见过的一种解决方案是在声明模型后强制输入。所以
interface UserModelInstanceMethods extends Sequelize.Model<Instance, Attributes> {
prototype: {
verifyPassword: (password: string) => Promise<boolean>;
};
}
const MyModel = (sequelize: Sequelize.Sequelize, dataTypes: Sequelize.DataTypes) => {
const User = sequelize.define<Instance, Attribute>(
"users",
{
id: {
type: dataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
email: {
type: dataTypes.STRING
},
...
},
{
tableName: "users",
...
},
);
User.prototype.verifyUser = function(password: string) {
...
};
return User;
} as Sequelize.Model<Instance, Attributes> & UserModelInstanceMethods;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8262 次 |
| 最近记录: |