gpt4 book ai didi

javascript - 如何在 TypeScript 中导出多个对象实例?

转载 作者:行者123 更新时间:2023-11-30 11:49:08 25 4
gpt4 key购买 nike

我正在使用依赖注入(inject)系统在 TypeScript 中构建一个库 (inversifyJS)构建自身并在内部解决依赖关系。我遇到的问题是 - 我想从注入(inject)系统向库的使用者公开多个实例。

目前我正在尝试做的是:

import kernel from "./src/inversify.config";
import EntityManager from './src/manager/entityManager.service';
import StorageService from './src/storage/storage.service';
import LanguageService from './src/language/language.service';

export { kernel.get<EntityManager>(EntityManager) as EntityManagerInstance };
export { kernel.get<EntityManager>(LanguageService) as LanguageServiceInstance };
export { kernel.get<EntityManager>(StorageService) as StorageServiceInstance };

我认为可能的解决方案是使用外观来导出类型并稍后访问它们:

import EntityManager from './src/manager/entityManager.service';
import StorageService from './src/storage/storage.service';
import LanguageService from './src/language/language.service';
import InjectionFacade from './utils/injection.facede';

export { EntityManager, LanguageService, StorageService, InjectiorFacade };
// Usage:
// import {InjectionFacade, StorageService} from 'entity-manager';
// let injectionFacade: InjectionFacade = InjectionFacade.createAndResolve();
// let storageService: StorageService = injectionFacade.getStorageService();

但问题是我还有一个无用的抽象

有没有一种方法可以在不丢失类型定义和导出现成对象的情况下实现这种解决方案?

最佳答案

您想使用多重声明变量,例如

export const
EntityManagerInstance = kernel.get<EntityManager>(EntityManager),
LanguageServiceInstance = kernel.get<EntityManager>(LanguageService),
StorageServiceInstance = kernel.get<EntityManager>(StorageService);

关于javascript - 如何在 TypeScript 中导出多个对象实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40009615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com