Sequelize导入存在TypeScript问题

Sequelize导入存在TypeScript问题,typescript,sequelize.js,Typescript,Sequelize.js,具体地说,db[model.name]=model有一个类型脚本错误: const _ = require('lodash'); const fs = require('fs'); const path = require('path'); const pg = require('pg'); require('pg-parse-float')(pg); const Sequelize = require('sequelize'); interface ImportedModel { na

具体地说,
db[model.name]=model有一个类型脚本错误:

const _ = require('lodash');
const fs = require('fs');
const path = require('path');
const pg = require('pg');
require('pg-parse-float')(pg);

const Sequelize = require('sequelize');

interface ImportedModel {
  name: string
}

export function models () {
  const dbOptions = {
    dialect: 'postgres',
    protocol: 'postgres',
    logging: false,
    // logging: console.log,
    dialectOptions: {
      ssl: false // TODO: Need to set ssl to true
    }
  };

  const dbUrl = process.env.DB_URL;
  const sequelize = new Sequelize(dbUrl, dbOptions);

  let db: Object = {};

  const modelPath = `${process.cwd()}/models`;
  fs.readdirSync(modelPath).forEach((file: String) => {
    if (file !== 'index.js' && path.extname(file) === '.js') {
      let model: ImportedModel = sequelize.import(path.join(modelPath, file));
      db[model.name] = model;
    }
  });

  Object.keys(db).forEach((modelName: String) => {
    if ('associate' in db[modelName]) {
      db[modelName].associate(db);
    }
  });

  return _.assign(db, {
    sequelize: sequelize,
    Sequelize: Sequelize
  });
}

如何解决此问题?

通过添加接口解决:

[ts] Element implicitly has an 'any' type because type 'Object' has no index signature.
并将我的代码更改为:

interface DbModel {
  [key: string]: any
}
  let db: DbModel = {}

  const modelPath = `${process.cwd()}/models`
  fs.readdirSync(modelPath).forEach((file: String) => {
    if (file !== 'index.js' && path.extname(file) === '.js') {
      let model: ImportedModel = sequelize.import(path.join(modelPath, file))
      db[model.name] = model
    }
  })

  Object.keys(db).forEach((modelName: string) => {
    if ('associate' in db[modelName]) {
      db[modelName].associate(db)
    }
  })