當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript inversify-inject-decorators.default函數代碼示例

本文整理匯總了TypeScript中inversify-inject-decorators.default函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript default函數的具體用法?TypeScript default怎麽用?TypeScript default使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了default函數的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: getDecorators

function getDecorators(kernel: inversify.interfaces.Kernel, store: Redux.Store<any>) {

    // TODO: Should binding be declared by user?
    let storeId = Symbol("Redux.Store");
    kernel.bind<Redux.Store<any>>(storeId).toConstantValue(store);

    let {
        lazyInject,
        lazyInjectNamed,
        lazyInjectTagged,
        lazyMultiInject
    } = getInjectDecorators(kernel);

    let provide = makeProvideDecorator(kernel);
    let provideFluent = makeFluentProvideDecorator(kernel);

    let provideSingleton = function(identifier: inversify.interfaces.ServiceIdentifier<any>) {
        return provideFluent(identifier).inSingletonScope().done();
    };

    let provideNamed = function(identifier: inversify.interfaces.ServiceIdentifier<any>, name: string) {
        return provideFluent(identifier).whenTargetNamed(name).done();
    };

    let provideTagged = function(identifier: inversify.interfaces.ServiceIdentifier<any>, key: string, value: any) {
        return provideFluent(identifier).whenTargetTagged(key, value).done();
    };

    // Decorator used to inject props mapped from the state into a class property
    let injectProps = (mapStateToProps: (state: any) => any) => {
        return function(proto: any, key: string): void {
            let state = store.getState();
            // todo subscribe to changes
            let props = mapStateToProps(state);
            let resolve = () => { return props; };
            proxyGetter(proto, key, resolve);
        };
    };

    // Decorator used to bind action creators and inject them into a class property
    let injectActions = (actionCreatorsIdentifier: inversify.interfaces.ServiceIdentifier<any>) => {
        return function(proto: any, key: string): void {
            let dispatch = store.dispatch;
            let actionCreators = kernel.get(actionCreatorsIdentifier);
            let boundActionCreators = Redux.bindActionCreators(actionCreators, dispatch);
            let resolve = () => { return kernel.get(actionCreatorsIdentifier); };
            proxyGetter(proto, key, resolve);
        };
    };

    return {
        provide,
        provideNamed,
        provideTagged,
        provideSingleton,
        provideFluent,
        injectProps,
        injectActions,
        lazyInject,
        lazyInjectNamed,
        lazyInjectTagged,
        lazyMultiInject
    };

}
開發者ID:redux-bootstrap,項目名稱:libertad,代碼行數:65,代碼來源:factory.ts

示例2: Container

import getDecorators from "inversify-inject-decorators";
import { Container } from 'inversify';

const ioc: Container = new Container();
const decorators = getDecorators(ioc);
const inject = decorators.lazyInject;

import { iocModule as commonIocModule } from '../ui/common/iocModule';
import { iocModule as todoIocModule } from '../ui/todo/iocModule';
// import { iocModule as todo2IocModule } from '../ui/todo2/iocModule';

ioc.load(
    commonIocModule,
    todoIocModule
);

// if (Math.random() >= 0.5) {
//     ioc.load(todo2IocModule);
// }

export { ioc, inject };
開發者ID:pslotinsky,項目名稱:todos,代碼行數:21,代碼來源:ioc.ts

示例3: Kernel

import { Kernel } from "inversify";
import { decorate, injectable, inject, interfaces } from "inversify";
import getDecorators from "inversify-inject-decorators";
import { makeProvideDecorator } from "inversify-binding-decorators";

let kernel = new Kernel();
let {lazyInject} = getDecorators(kernel);
let provide = makeProvideDecorator(kernel);

export { kernel, lazyInject, provide };
開發者ID:nakakura,項目名稱:mono,代碼行數:10,代碼來源:inversify_initialize.ts

示例4: constructor

import getDecorators from "inversify-inject-decorators";
import { Kernel, injectable, tagged, named } from "inversify";

module lazyInject {

  let kernel = new Kernel();
  let { lazyInject } = getDecorators(kernel);
  let TYPES = { Weapon: "Weapon" };

  interface Weapon {
      name: string;
      durability: number;
      use(): void;
  }

  @injectable()
  class Sword implements Weapon {
      public name: string;
      public durability: number;
      public constructor() {
          this.durability = 100;
          this.name = "Sword";
      }
      public use() {
          this.durability = this.durability - 10;
      }
  }

  class Warrior {
      @lazyInject(TYPES.Weapon)
      public weapon: Weapon;
開發者ID:KostyaTretyak,項目名稱:DefinitelyTyped,代碼行數:31,代碼來源:inversify-inject-decorators-tests.ts


注:本文中的inversify-inject-decorators.default函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。