Типова грешка - не е конструктор

Исках да инстанцирам модул в рамките на ES6 javascript и да го транспилирам в ES5. Създавам нов клас в моя проект, който е es6 / webpack. Имам 2 файла: track.js, който има следното --

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

Другият е index.js --

import { Track } from './track';

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

Опитвам се да накарам регистрационния файл на конзолата да показва празен обект. Вместо това получавам -- Uncaught TypeError: _track.Track не е конструктор


person Yasir    schedule 10.10.2016    source източник
comment
импортиране на песен от './track'   -  person Kevin    schedule 10.10.2016


Отговори (2)


Проблемът е в начина, по който импортирате Track в index.js. Трябва или да импортирате по този начин:

import Track from './track';

Или в track.js трябва да го експортирате по този начин:

export {Track}
person Kevin    schedule 10.10.2016

Експортирате Track по подразбиране, така че трябва да използвате импортиране по подразбиране. промяна

import { Track } from './track';

to

import Track from './track';

Вижте Какво е експортиране по подразбиране в javascript?


Когато правите import { Track } from './track', вие се опитвате да получите достъп до свойството Track на експортирания обект (който е класът Track), който е недефиниран (така че не е конструктор).

person Michał Perłakowski    schedule 10.10.2016