假设我有这样的接口:
export interface IParser {
parse(text: string):string
}
和几个实现该接口的类:
@Injectable()
export class FirstParser implements IParser {
public parse(text: string): string {
return text + 'first';
}
}
@Injectable()
export class SecondParser implements IParser {
public parse(text: string): string {
return text + 'second';
}
}
现在,我有一个服务,我正在try 向他注入解析器列表:
@Injectable()
export class ParserService {
constructor(private readonly parsers: IParser[]) {}
public parse(text: string): string {
let parsedText = text;
parsedText = this.parsers.reduce((acc: string, result) => {
return result.parse(acc);
}, parsedText);
return parsedText;
}
}
我正在try 使应用程序模块(在本例中为parser-service.mode.ts)正常工作 通过注入包含FirstParser、Second Parser的类的数组/列表.
@Module({
providers: [
ParserService,
{
provide: Array<IParser>,
useClass: ???,
},
],
})
export class ParserServiceModule {}
有什么主意吗?这在NestJs中是完全可能的吗?
谢谢.