Έχω αναπτύξει ένα δοχείο ΔΟΕ κάλεσε InversifyJS με προηγμένα χαρακτηριστικά ένεση εξάρτηση, όπως συμφραζόμενα συνδέσεις.
Θα χρειαστεί να ακολουθήσετε 3 βασικά βήματα για να το χρησιμοποιήσετε:
1. Προσθέστε σχολιασμούς
Ο σχολιασμός API βασίζεται σε Γωνιακή 2.0:
import { injectable, inject } from "inversify";
@injectable()
class Katana implements IKatana {
public hit() {
return "cut!";
}
}
@injectable()
class Shuriken implements IShuriken {
public throw() {
return "hit!";
}
}
@injectable()
class Ninja implements INinja {
private _katana: IKatana;
private _shuriken: IShuriken;
public constructor(
@inject("IKatana") katana: IKatana,
@inject("IShuriken") shuriken: IShuriken
) {
this._katana = katana;
this._shuriken = shuriken;
}
public fight() { return this._katana.hit(); };
public sneak() { return this._shuriken.throw(); };
}
2. δέστρες αναγνωρίσει
Η API δεσμευτική βασίζεται σε Ninject:
import { Kernel } from "inversify";
import { Ninja } from "./entities/ninja";
import { Katana } from "./entities/katana";
import { Shuriken} from "./entities/shuriken";
var kernel = new Kernel();
kernel.bind<INinja>("INinja").to(Ninja);
kernel.bind<IKatana>("IKatana").to(Katana);
kernel.bind<IShuriken>("IShuriken").to(Shuriken);
export default kernel;
3. εξαρτήσεις Επίλυση
Το API ανάλυση βασίζεται σε Ninject:
import kernel = from "./inversify.config";
var ninja = kernel.get<INinja>("INinja");
expect(ninja.fight()).eql("cut!"); // true
expect(ninja.sneak()).eql("hit!"); // true
Η τελευταία έκδοση (2.0.0) υποστηρίζει πολλές περιπτώσεις χρήσης:
- modules του πυρήνα
- πυρήνα middleware
- Χρησιμοποιήστε τις κατηγορίες, κατεξοχήν συμβολοσειρά ή σύμβολα, όπως αναγνωριστικά εξάρτηση
- Ένεση σταθερές τιμές
- Ένεση της κατηγορίας κατασκευαστών
- Ένεση εργοστάσια
- Auto εργοστάσιο
- Ένεση των παρόχων (εργοστασίου async)
- χειριστές ενεργοποίησης (που χρησιμοποιείται για την ένεση proxies)
- πολλαπλών ενέσεων
- Tagged δέστρες
- διακοσμητές Προσαρμοσμένη ετικέτα
- Το όνομά δέστρες
- συμφραζόμενα συνδέσεις
- Φιλικό εξαιρέσεις (π.χ. Εγκύκλιος εξαρτήσεις)
Μπορείτε να μάθετε περισσότερα γι 'αυτό στο https://github.com/inversify/InversifyJS