Chibi Izumi: Phased dependency injection for TypeScript
4 months ago
- #scala
- #typescript
- #dependency-injection
- 对Scala的Izumi项目distage库进行TypeScript重实现,用于分阶段依赖注入。
- 特性包括:流畅的DSL语法用于DI模块、类型安全绑定、通过@Reflected装饰器实现自动依赖解析、支持异步并行执行。
- 支持多种绑定类型、基于轴标记的条件绑定、生命周期管理、快速失败验证机制。
- 对比表显示izumi-chibi-ts支持全部列出的功能,而InversifyJS、TSyringe等其他库不具备。
- 示例演示了如何用@Reflected定义类、创建模块,并通过Injector生成实例。
- 高级功能包括类型安全工厂Functoid、@Id命名依赖、集合绑定、基于轴的激活策略。
- 资源生命周期管理,规划阶段与生产阶段分离。
- 可检测循环依赖/缺失依赖及绑定冲突等错误。
- 支持模块组合/覆盖能力,同步/异步两种生产方式。
- 项目状态:尚未经过实战检验,采用MIT许可证,有兄弟项目izumi-chibi-py。