qs-di-ts
v1.0.4
Published
Lightweight wrap of di.js v2 for TypeScript.
Downloads
6
Maintainers
Readme
Dependency Injection for Typescript
Lightweight wrap of di.js for TypeScript.
Install
npm install qs-di-ts
Usage
You need to use
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
when compiling typescript files.
car.ts
import {Inject} from 'qs-di-ts'
import {Engine} from './engine'
@Inject
export class Car {
constructor(public engine: Engine) {}
}
engine.ts
export class Engine {
}
mockEngine.ts
import {Provide} from 'qs-di-ts'
import {Engine} from './engine'
@Provide(Engine)
export class MockEngine {
}
main.ts
import {Injector} from 'qs-di-ts'
import {Car} from './car'
import {Engine} from './engine'
var injector = new Injector();
var car: Car = injector.get(Car); //instantiate car, car.engine is magically instance of Engine! :)
import {MockEngine} from './mockEngine'
var injector2 = new Injector([MockEngine]);
var car2: Car = injector2.get(Car); //instantiate car, car.engine is instance of MockEngine! :)
License
MIT