Вложенная инъекция не разрешена машинопись && KOA && Inversify

Привет всем Я использую сервер KOA с Inversify. Я делаю несколько тестов, и если я запускаю свое приложение, не передавая его, оно работает. Проблема в том, когда я пытаюсь собрать приложение. Я получаю ошибку

src/index.ts(12,32): ошибка TS2345: Аргумент типа 'IElementRoutes' не может быть назначен параметру типа 'ElementRoutes'. Свойство elementController отсутствует в типе IElementRoutes.

Это мой код

index.ts

import { container } from "./config/ioc_config";

import Server from "./server";
import { IUserRoutes } from "./routes/UserRoutes";
import { IElementRoutes } from "./routes/ElementRoutes";
import { ROUTES_IDENTIFIER } from "./constants/identifiers";

const app: Server = new Server(container.get<IElementRoutes>(ROUTES_IDENTIFIER.ELEMENT_ROUTES), container.get<IUserRoutes>(ROUTES_IDENTIFIER.USER_ROUTES));
app.start();

ioc_config

export let container = new Container();

container.bind<IElementController>(CONTROLLER_IDENTIFIER.ELEMENT_CONTROLLER).to(ElementController);
container.bind<IUserController>(CONTROLLER_IDENTIFIER.USER_CONTROLLER).to(UserController);
container.bind<IElementRoutes>(ROUTES_IDENTIFIER.ELEMENT_ROUTES).to(ElementRoutes);
container.bind<IUserRoutes>(ROUTES_IDENTIFIER.USER_ROUTES).to(UserRoutes);

server.ts

constructor(
@inject(ROUTES_IDENTIFIER.ELEMENT_ROUTES) private elementRoutes: ElementRoutes,
@inject(ROUTES_IDENTIFIER.USER_ROUTES) private userRoutes: UserRoutes) { }

Каждый маршрут имеет контроллер, который также вводится. Здесь я подозреваю, что у меня есть проблемы, может быть, какой-то вывод не может быть сделан во время сборки, но выполняется во время выполнения, это может быть причиной того, что это работает, но я не могу передать это.

elementRoutes.ts

constructor( @inject(CONTROLLER_IDENTIFIER.ELEMENT_CONTROLLER) private elementController: ElementController) {
    super();
}

0 ответов

Другие вопросы по тегам