Ошибка InversifyJS: Ошибка: Не найдено совпадающих привязок для объекта serviceIdentifier: Строка

#javascript #inversifyjs

#язык JavaScript #инверсия

Вопрос:

В шахтном применении с использованием инверсии для контейнеризации

есть абстрактный класс

 @injectable() export abstract class Name {  tableName: string;   constructor(  @inject("DatabaseService") public db: DatabaseService,  @inject("GenesisApiService") public api: GenesisApiService  ) {}   abstract fullSync(accountId: number): Promiselt;voidgt;;   abstract incrementalSync(accountId: number): Promiselt;voidgt;; }  

также есть класс, который расширяет этот абстрактный класс

 @injectable() export class ServiceName extends Name {  tableName = "Name";   constructor(  @inject("ServiceName") db: ServiceName,  @inject("Service2Name") api: Service2Name  ) {  super(ServiceName, Service2Name);  }   async fullSync(accountId: number): Promiselt;voidgt; {  const apiUrl = "/servlet/rs/v1/schedule/fetch/incrementalSync?authToken=";  const result = await this.api.get(apiUrl);  console.log("result", result);  }   async incrementalSync(accountId: number): Promiselt;voidgt; {  return null;  } }  

после того, как я помещен в контейнер, как в документации

 import "reflect-metadata"; import { Container } from "inversify"; import { ServiceName } from "./services/ServiceName/ServiceName";  export const container = new Container({  autoBindInjectable: true,  skipBaseClassChecks: true, });  container.bindlt;ServiceNamegt;("ServiceName").to(ServiceName);   

после попытки вызвать методы обслуживания

 import { container } from "../ioc"; import { GenesisApiService } from "../services/genesis-api";  export const ServiceName = async () =gt; {  try {  console.log("@@@@@@@@@@@@@1");  const service = container.getlt;ServiceNamegt;("ServiceName");  await service.get("123321");  } catch (error) {  console.log("error", error);  } };  ServiceName();  

и получаю эту ошибку

 Error: No matching bindings found for serviceIdentifier: String