0

我有一个包含多个不同组件的应用程序,每个组件都有自己的依赖项,并且正在使用 TSyringe 来管理依赖项注入。其中一个组件是这样的运算符:

// myoperator.ts

@injectable()
export class MyOperator {
    constructor(
        private dependencyA: DependencyA,
        protected dependencyB: DependencyB,
        protected dependencyC: DependencyC,
        protected operationType: string
    ){
         // initialize operator, etc.
    }

    // ...

}

它是一个执行操作的类,依赖于一堆其他类,并且有一个字符串参数来指定它将操作的方式。

在主应用程序中,我正在初始化主应用程序使用的所有不同组件,并且我需要使用几种不同的操作类型来初始化 MyOperator。

// mainapp.ts

@singleton()
export class MainApp {
    constructor(
        componentA: ComponentA,
        componentB: ComponentB,
        componentC: ComponentC,
        operatorWithOperationTypeFoo: MyOperator // the operationType should be "foo"
        operatorWithOperationTypeBar: MyOperator // the operationType should be "bar"
        operatorWithOperationTypeBaz: MyOperator // the operationType should be "baz"
    ) {
         // initialize main app, etc.        
    }

    public start() {
        // start main app etc.
    
    }
}

// main.ts

const app = container.resolve(MainApp);
app.start();

我的问题是,在 MainApp 构造函数参数中定义它们时,如何更改类中的单个operationType参数?MyOperator

4

0 回答 0