title: TypeScript error when using Op.between in Sequelize with Dates
body: <p>I want to find all records in a MySql table which was created within a certain range of date. </p>
  
  <p>So I wrote:</p>
  
  <pre class="lang-js prettyprint-override"><code>import { Sequelize, Model, DataTypes, Op } from 'sequelize';
  
  const sequelize = new Sequelize({
    // some db connection config
    dialect: 'mysql'
  })
  
  class Patient extends Model {
    public guid!: number;
    public name!: string;
  
    public recordState: number = 0;
    public createdAt?: Date;
    public updatedAt?: Date
  }
  Patient.init({
    guid: {
      type: DataTypes.STRING,
      primaryKey: true,
      allowNull: false
    },
    name: { type: DataTypes.STRING, allowNull: false },
  
    recordState: {
      type: DataTypes.INTEGER,
      allowNull: false,
      defaultValue: 0
    },
    createdAt: DataTypes.DATE,
    updatedAt: DataTypes.DATE
  }, {
    sequelize,
    modelName: 'Patient',
    timestamps: false
  })
  
  Patient.findAll({
    where: {
      createdAt: {
        [Op.between]: [new Date('2020-02-02'), new Date()]
      }
    }
  })
  </code></pre>
  
  <p>But, when I try to compile it with <code>tsc</code>, it reports error like:</p>
  
  <pre><code>sequelize.ts:50:5 - error TS2322: Type '{ [between]: Date[]; }' is not assignable to type 'string | number | boolean | WhereAttributeHash | AndOperator | OrOperator | Literal | Where | Fn | Col | WhereOperators | Buffer | WhereGeometryOptions | (string | ... 2 more ... | Buffer)[]'.
    Types of property '[Op.between]' are incompatible.
      Type 'Date[]' is not assignable to type 'string | number | boolean | [number, number] | WhereAttributeHash | AndOperator | OrOperator | Literal | Where | ... 5 more ... | (string | ... 2 more ... | Buffer)[]'.
        Type 'Date[]' is not assignable to type '(string | number | WhereAttributeHash | Buffer)[]'.
          Type 'Date' is not assignable to type 'string | number | WhereAttributeHash | Buffer'.
            Type 'Date' is not assignable to type 'WhereAttributeHash'.
              Index signature is missing in type 'Date'.
  
  50     createdAt: {
         ~~~~~~~~~
  
  
  Found 1 error.
  </code></pre>
  
  <p>It seems I cannot use <code>Op.between</code> with a date range? But it's ok when I wrote similar code in JS.</p>
  
  <p>So I wonder if there is really something wrong in my TS code or just a missing in the type definition, or maybe using <code>Op.between</code> with dates is not recommended?</p>