【问题标题】:Object literal may only specify known properties, and 'modules' does not exist in type 'ModuleMetadata'对象字面量只能指定已知属性,而“模块元数据”类型中不存在“模块”
【发布时间】:2020-06-14 15:30:18
【问题描述】:

我刚刚升级了所有包,特别是 TypeScript 从 2.5.2 升级到 3.8.3,我收到了这个错误:

错误 TS2345:类型参数 '{ 模块:(typeof OrmModule)[]; 控制器:(AppController 类型)[];组件:(类型 配置服务 |日志服务类型 |类型 消息服务)[]; }' 不可分配给类型参数 “模块元数据”。对象字面量只能指定已知属性, 并且“模块元数据”类型中不存在“模块”。

19 个模块:[OrmModule、AdminModule、CrmModule、EmrModule],

import { Module, NestModule, MiddlewareConsumer, RequestMethod } from '@nestjs/common';
import { AppController } from './app.controller';

import { AuthenticationMiddleware } from './authentication/tokenhandler';
import { MulterMiddleware } from './common/middlewares/multer';

import { AdminModule } from './admin/admin.module';
import { OrmModule } from '../orm/orm.module';
import { CrmModule } from './crm/crm.module';
import { EmrModule } from './emr/emr.module';
import { ConfigurationService } from './common/services/configuration';
import { LoggingService } from './common/services/logging';
import { MessagingService } from './common/services/messaging';

@Module({
  modules: [OrmModule, AdminModule, CrmModule, EmrModule],
  controllers: [AppController],
  components: [ConfigurationService, LoggingService, MessagingService]
})

export class ApplicationModule implements NestModule {
  configure(consumer: MiddlewareConsumer): void {
    consumer.apply(AuthenticationMiddleware)
      .with(  // routes that will be excluded.
        { path: '/leads/open', method: RequestMethod.POST },
        { path: '/', method: RequestMethod.GET },
        { path: '/documents/upload', method: RequestMethod.POST },
      ).forRoutes( //routes that will be included
        { path: '/*', method: RequestMethod.ALL },
        { path: '/*/*', method: RequestMethod.ALL }
      );
    consumer.apply(MulterMiddleware)
      .forRoutes({ path: '/images/:leadId', method: RequestMethod.POST },
            { path: '/documents/:leadId', method: RequestMethod.POST },
            { path: '/examination/stylist/:leadId', method: RequestMethod.POST },
            { path: '/examination/stylist/:leadId/:id', method: RequestMethod.PUT }
    )
  }
}

【问题讨论】:

    标签: node.js typescript


    【解决方案1】:

    modules: [] 更改为imports: []

    【讨论】:

    • 欢迎来到 SO!虽然这可能是问题的答案,但您能否详细说明它为什么解决了这个问题?也许包括文档链接或某种解释。谢谢。
    猜你喜欢
    • 2020-11-27
    • 1970-01-01
    • 2022-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-06
    • 2021-02-18
    相关资源
    最近更新 更多