当前位置: 首页>>代码示例>>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;未经允许,请勿转载。