这是我当前的设置:
const { Model, DataTypes } = require('sequelize');
class CustomModel extends Model {
static init(attributes, config) {
return super.init(attributes, {
...config,
timestamps: true,
underscored: true,
createdAt: 'created_at',
updatedAt: 'updated_at',
});
}
}
class User extends CustomModel {
ahoy() {
const { email } = this.get();
console.log(`Ahoy, ${email}`);
}
}
User.init({
id: {
type: DataTypes.UUID,
primaryKey: true,
allowNull: false,
defaultValue: DataTypes.UUIDV4,
},
email: {
type: DataTypes.STRING,
allowNull: false,
unique: true
},
}, myConfigHere);
现在我想确保所有的User
属性,以及它的模型方法,都显示在VSCode自动完成中。
const user = await User.findOne({ where: { email: 'john@example.com' } });
user.email; // No autocomplete while typing
user.ahoy() // No autocomplete while typing
当我将代码更改为class User extends Model
时,可以看到ahoy()
正在自动完成,但这不适用于.email
是否有办法解决这个问题(例如,使用JSDoc)?
1条答案
按热度按时间wr98u20j1#
如果您使用纯Javascript,则无法执行此操作。
考虑使用Typescript,然后VSCode(或者任何编辑器)将能够监视你的Object,并建议你想从它那里得到什么属性。