javascript Sequelize -自动完成方法和属性

nnsrf1az  于 2023-01-24  发布在  Java
关注(0)|答案(1)|浏览(125)

这是我当前的设置:

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)?

wr98u20j

wr98u20j1#

如果您使用纯Javascript,则无法执行此操作。
考虑使用Typescript,然后VSCode(或者任何编辑器)将能够监视你的Object,并建议你想从它那里得到什么属性。

相关问题