导入类和调用静态方法与es6模块与babel transpiler [英] import class and call static method with es6 modules with babel transpiler

查看:176
本文介绍了导入类和调用静态方法与es6模块与babel transpiler的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下类定义:

  class EmberReflux {
static createActions(actions){
console.log(actions);
}
}

export {EmberReflux};

当我从其他文件导入时:



从../utils/ember-reflux导入EmberReflux的

  

让TodoActions = EmberReflux.createActions(
[
addItem,
undo,
redo
]);

export {TodoActions};

折叠看起来像这样

  define('ember-reflux / utils / todo-actions',['exports','ember-reflux / utils / ember-reflux'],function(exports,EmberReflux){

'use strict';

var TodoActions = EmberReflux ['default']。createActions([addItem,undo,redo]);

exports.TodoActions = TodoActions;

});

我不知道在 EmberReflux ['default' ]



我想像这样调用静态类方法:

  EmberReflux.createActions 

但是我必须像下面这样调用:

  EmberReflux.EmberReflux.createActions 


解决方案

您有两个选项:


  1. 导出 EmberReflux 它就像你在做的:

      export {EmberReflux}; 

    然后将其导入:



    <$ p来自'../utils/ember-reflux'的$ p> import {EmberReflux};


  2. 导出时使用 default

     导出默认值EmberReflux; 

    并导入(就像你在做):


    $ b $从../utils/ember-reflux导入EmberReflux; b

      


在这两种情况下,您都可以使用 EmberReflux like:

  EmberReflux.createActions(); 


I have the following class definition:

class EmberReflux{
  static createActions(actions) {
    console.log(actions);
  }
}

export { EmberReflux };

When I import it from a different file:

import EmberReflux from '../utils/ember-reflux';

let TodoActions = EmberReflux.createActions(
[
  "addItem",
  "undo",
  "redo"
]);

export { TodoActions };

The transpiled looks like this

define('ember-reflux/utils/todo-actions', ['exports', 'ember-reflux/utils/ember-reflux'], function (exports, EmberReflux) {

    'use strict';

    var TodoActions = EmberReflux['default'].createActions(["addItem", "undo", "redo"]);

    exports.TodoActions = TodoActions;

});

I'm not sure what the default is in EmberReflux['default']

I want to call the static class method like this:

EmberReflux.createActions

But instead I have to call it like this:

EmberReflux.EmberReflux.createActions

解决方案

You have two options:

  1. Export EmberReflux it like you are doing:

    export { EmberReflux };
    

    and then import it like:

    import { EmberReflux } from '../utils/ember-reflux';
    

  2. Use default when exporting:

    export default EmberReflux;
    

    and import it (like you are doing):

     import EmberReflux from '../utils/ember-reflux';
    

In both cases you can then use your EmberReflux like:

EmberReflux.createActions();

这篇关于导入类和调用静态方法与es6模块与babel transpiler的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆