简介

January 19, 2026 · View on GitHub

中文English

简介

  • Angular 依赖注入的独立版本
  • 使用方法与 Angular 的依赖注入完全一致
  • 不需要任何转换器,引入即可使用
  • 0依赖
  • 移除装饰器

    @Injectable()=>static injectOptions={} > @Inject() xx=>xx=inject() > @Optional()=>xx=inject(token,{optional:true})

  • JS/TS支持

来源

  • Angular 20.3.15

使用方法

  • createRootInjector创建第一级依赖注入器
import {
  Injector,
  inject,
  // 根级
  createRootInjector,
  // 非根级
  createInjector,
} from 'static-injector';

class Main {
  child = inject(Child);
}
class Child {
  output() {
    return 'hello world';
  }
}
let injector = createRootInjector({ providers: [Main, Child] });
const instance = injector.get(Main);
console.log(instance.child.output());

无装饰器

  • 原来使用@Injectable()传参改为static injectOptions={}.如果没有参数即不需要设置
  • 原来@Optional,@SkipSelf,@Self,请使用inject的第二个传参代替

响应式

  • 支持signal,effect,resource,linkedSignal,computed

测试

  • 做了一部分的单元测试.保证大部分功能正常使用
  • 因为大部分代码本身就是从 Angular 中提取的,所以稳定性肯定也是有保证

同步

  • 目前重构了同步逻辑,使用@code-recycle/cli进行修改,保证与angular官方版本一致

实例