2016-10-10 1 views
5

Wollte ein Modul in ES6 Javascript instanziieren und auf ES5 übertragen. In meinem Projekt, das es6/webpack ist, richte ich eine neue Klasse ein. Ich habe 2 Dateien: track.js die sich die folgende hat -Type Error - Ist kein Konstruktor

export default class Track { 
    constructor() { 
    this.o = {}; 
    } 
} 

Die andere ist index.js -

import { Track } from './track'; 

const track = new Track(); 
console.log(track); 

Ich versuche Konsolenprotokoll zeigen ein leeres Objekt zu haben. Stattdessen erhalte ich - Uncaught Typeerror: _track.Track kein Konstruktor ist

+2

importieren Track von './track' – Kevin

Antwort

5

Das Problem mit der Art und Weise ist bist du Track in index.js importieren. Sie müssen entweder Import wie folgt aus:

import Track from './track'; 

Oder in track.js müssen Sie es wie folgt exportieren:

export {Track} 
8

Sie exportieren Track als Standard, so sollten Sie Standard-Import verwenden. Ändern

import { Track } from './track'; 

zu

import Track from './track'; 

Siehe What is "export default" in javascript?


Wenn Sie das tun Sie versuchen, die Track Eigenschaft des exportierten Objekt zuzugreifen (die den Track-Klasse ist), was nicht definiert ist (also kein Konstruktor).