Typescript和typeorm config.ts没有重载与此调用匹配

Typescript和typeorm config.ts没有重载与此调用匹配,typescript,typeorm,Typescript,Typeorm,你好,我的应用程序中有问题 从my ormconfig.ts加载我的设置时,使用typeorm函数创建连接 我在我的应用程序中遇到此错误: No overload matches this call. Overload 1 of 3, '(name: string): Promise<Connection>', gave the following error. Argument of type 'typeof import("d:/EmasaTi_StockC

你好,我的应用程序中有问题 从my ormconfig.ts加载我的设置时,使用typeorm函数创建连接 我在我的应用程序中遇到此错误:

No overload matches this call.
  Overload 1 of 3, '(name: string): Promise<Connection>', gave the following error.
    Argument of type 'typeof import("d:/EmasaTi_StockControl/src/shared/infra/http/ormconfig")' is not assignable to parameter of type 'string'.
  Overload 2 of 3, '(options: ConnectionOptions): Promise<Connection>', gave the following error.
    Argument of type 'typeof import("d:/EmasaTi_StockControl/src/shared/infra/http/ormconfig")' is not assignable to parameter of type 'ConnectionOptions'.
      Type 'typeof import("d:/EmasaTi_StockControl/src/shared/infra/http/ormconfig")' is missing the following properties from type 'ExpoConnectionOptions': type, database, driverts(2769)
Peek Problem (Alt+F8)
No quick fixes available
我的配置文件:

import { ConnectionOptions } from 'typeorm';

const rootDir = process.env.NODE_ENV === 'development' ? 'src' : 'build/src';
export const config: ConnectionOptions = {
  type: 'postgres',
  host: process.env.DB_HOST,
  port: Number(process.env.DB_PORT),
  username: process.env.DB_USER,
  password: process.env.DB_PASS,
  database: process.env.DB_NAME,
  entities: [rootDir + '/entities/**/*.{js,ts}'],
  migrations: [rootDir + '/migrations/*.{js,ts}'],
  subscribers: [rootDir + '/subscribers/**/*.{js,ts}'],
  cli: {
    entitiesDir: `${rootDir}/entities`,
    migrationsDir: `${rootDir}/migration`,
    subscribersDir: `${rootDir}/subscriber`,
  },
  synchronize: false,
  logging: true
};

module.exports = config;
我无法想象我怎样才能解决这个问题
如果有人能帮助我,我很感激

我不确定什么是完美的解决方案,但我找到了一种解决方法

  • tsconfig.json
    或其他配置文件(视情况而定)中删除
    “type”:“mysql”
  • 像往常一样导入配置。示例:
    import config from./ormconfig.json'
  • 像这样使用
    config
    变量:
    createConnection({type:“postgres”,…config})
  • 我认为由于某些原因,
    type
    键没有被正确解析


    干杯。

    如果您将配置对象内联设置为
    createConnection({…})
    而不导入,它会工作吗?请参见我的答案。我为postgres编写了示例工作配置,可能对您有所帮助:
    import { ConnectionOptions } from 'typeorm';
    
    const rootDir = process.env.NODE_ENV === 'development' ? 'src' : 'build/src';
    export const config: ConnectionOptions = {
      type: 'postgres',
      host: process.env.DB_HOST,
      port: Number(process.env.DB_PORT),
      username: process.env.DB_USER,
      password: process.env.DB_PASS,
      database: process.env.DB_NAME,
      entities: [rootDir + '/entities/**/*.{js,ts}'],
      migrations: [rootDir + '/migrations/*.{js,ts}'],
      subscribers: [rootDir + '/subscribers/**/*.{js,ts}'],
      cli: {
        entitiesDir: `${rootDir}/entities`,
        migrationsDir: `${rootDir}/migration`,
        subscribersDir: `${rootDir}/subscriber`,
      },
      synchronize: false,
      logging: true
    };
    
    module.exports = config;