@noding/di

依赖注入

Usage no npm install needed!

<script type="module">
  import nodingDi from 'https://cdn.skypack.dev/@noding/di';
</script>

README

injector

依赖注入

import { Injectable, coreInjectorFactory, Optional, Inject } from '@noding/di';

export class Demo3 { }

@Injectable()
export class Demo2 {
    constructor(private demo3: Demo3) { }
}

@Injectable()
export class Demo {
    /**
     * 先解析Inject后解析Optional
     */
    constructor(@Optional() @Inject(Demo2) private demo2: Demo2) {

    }
}

const injector = coreInjectorFactory([
    {
        provide: Demo, useClass: Demo, multi: true
    },
    {
        provide: Demo2, useClass: Demo2, deps: [
            [new Optional(), Demo3]
        ]
    },
    Demo3
])
const instance = injector.get(Demo)

const inject = new Inject(Demo2)