【发布时间】: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