我想用打字稿将 mikroConfig 初始化为 MikroORM,我收到了这条错误消息

I want to init mikroConfig to MikroORM with typescript and i got this error message

错误信息:

类型为“{ readonly entities: readonly [typeof Post] 的参数;只读 dbName:“lireddit”;只读类型:“postgresql”;只读调试:布尔值; }' 不可分配给 'Configuration<IDatabaseDriver> | Options<IDatabaseDriver> | undefined' 类型的参数。 输入'{只读实体:只读[typeof Post];只读 dbName:“lireddit”;只读类型:“postgresql”;只读调试:布尔值; }' 不可分配给类型 'Options<IDatabaseDriver>'。 输入'{只读实体:只读[typeof Post];只读 dbName:“lireddit”;只读类型:“postgresql”;只读调试:布尔值; }' 不可分配给类型 'Partial<MikroORMOptions<IDatabaseDriver>>'。 属性 'entities' 的类型不兼容。 类型 'readonly [typeof Post]' 是 'readonly' 并且不能分配给可变类型 '(string | EntityClass | EntityClassGroup | EntitySchema)[]'.ts(2345)

index.ts:

import { MikroORM } from '@mikro-orm/core';
import { __prod__ } from './constants';
import { Post } from './entities/Post';
import mikroConfig from './mikro-orm.config';

const main = async() => {
    const orm = await MikroORM.init(mikroConfig);
    const post = orm.em.create(Post, {title:'ez az első posztom hehe'})
    await orm.em.persistAndFlush(post)
}

main().catch((err) => {
    console.error(err)
})

还有微型-orm.config.ts:

import { Post } from "./entities/Post";
import { __prod__ } from "./constants";

export default {
    entities:[Post],
    dbName: "lireddit",
    type: "postgresql",
    debug : !__prod__,
} as const;

谢谢你的帮助,太痛苦了

您定义 ORM 配置的方式是错误的,您应该使用核心包中的 Options 类型而不是 const 断言。以这种方式定义配置以获得最佳的智能感知支持(以及消除 TS 错误):

import { Options } from '@mikro-orm/core';
import { Post } from "./entities/Post";
import { __prod__ } from "./constants";

const config: Options = {
    entities: [Post],
    dbName: "lireddit",
    type: "postgresql",
    debug : !__prod__,
};
export default config;