Hasty Briefsbeta

双语

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。