我有一个包含多个不同组件的应用程序,每个组件都有自己的依赖项,并且正在使用 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