2015-03-09 6 views
1

Использование gulp, browserify & babelify, экспортирующей/классы импорта работали хорошо, пока я пытался импортировать один и тот же класс под другим именем:Импорт ES6 класса под другим именем

// Acme/DefaultInit.js 
export default class DefaultInit { 
    constructor() { 
     console.log('hello'); 
    } 
} 

// App/Init.js 
import * as B from "../Acme/DefaultInit"; 

class Init extends B.DefaultInit { 
    constructor() { 
     super(); 
     console.log('how are you?'); 
    } 
} 

Так что, когда я бегу глотка встроенный сценарий, погрешность является:

TypeError: Super expression must either be null or a function, not undefined 

исходя из Вавилонских сгенерированного кода

if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } 

Что Я делаю не так? Обратите внимание, что нет ошибок jslint.

ответ

4

Вы экспортируете DefaultInit по умолчанию, поэтому он будет доступен с B.default, а не B.DefaultInit.

Если вы хотите быть в состоянии сделать B.DefaultInit уронить default еще до class DefaultInit или альтернативно заменить import * as B на import DefaultInit.

Смежные вопросы