如何为 sequelize 多对多关联方法创建类型安全,例如(setModels 等)

How to create type safety for sequelize many to many associations methods, like (setModels, etc.)

我有模型

model/Caregiver

import { BuildOptions, DataTypes, Model, Sequelize } from 'sequelize';
export interface CaregiverAttributes {
  caregiver_id: number | string;
  caregiver_notification_preferences?: string;
}
export interface CaregiverModel
  extends Model<CaregiverAttributes>,
    CaregiverAttributes {}

export type CaregiverStatic = typeof Model & {
  new (values?: object, options?: BuildOptions): CaregiverModel;
};

export function CaregiverFactory(sequelize: Sequelize): CaregiverStatic {
  return <CaregiverStatic>sequelize.define(
    'caregiver',
    {
      caregiver_id: {
        type: DataTypes.UUID,
        defaultValue: DataTypes.UUIDV4,
        allowNull: false,
        primaryKey: true,
      },
      caregiver_notification_preferences: {
        type: DataTypes.STRING,
        allowNull: true,
      },
    },
    {
      timestamps: false,
      underscored: true,
      tableName: 'caregiver',
    }
  );
}

和协会

Caregiver.belongsToMany(Patient, {
  foreignKey: 'caregiver_id',
  targetKey: 'caregiver_id',
  as: 'Patient',
});

但是当我尝试 getset

const patients = await caregiver.getPatients();

我有一个错误:属性 getPatients 在类型 CaregiverModel

上不存在

有人遇到同样的问题吗?

注意: // @ts-ignore 工作正常。

已解决 找到这篇论文 https://vivacitylabs.com/setup-typescript-sequelize/ ,它在哪里 describe.