94 votes

Erreur : *.default n'est pas un constructeur

Je reçois l'erreur suivante, lorsque je teste un code javascript, transposé à partir d'un fichier typescript.

Voici l'erreur :

Error: _mapAction2.default is not a constructor

Voici la ligne de code qui a provoqué l'erreur :

var mapAction = new MapAction(MapActionType.POLYGONDRAGGED, []);

Voici le fichier dactylographié original map-action.ts :

import { IMapAction} from './imap-action';
import { MapActionType } from './map-action-type.enum';
import {LatLngLiteral} from 'angular2-google-maps/core';

export class MapAction implements IMapAction{
    type: MapActionType;
    paths: Array<LatLngLiteral>;

    constructor(mapActionType: MapActionType, paths: Array<LatLngLiteral>){
        this.type = mapActionType;
        this.paths = paths;
    }

    public getType(): MapActionType{
        return this.type;
    }

    public getPaths(): Array<LatLngLiteral>
    {
        return this.paths;
    }

}

Voici le fichier .js transpilé. map-action.js :

"use strict";
class MapAction {
    constructor(mapActionType, paths) {
        this.type = mapActionType;
        this.paths = paths;
    }
    getType() {
        return this.type;
    }
    getPaths() {
        return this.paths;
    }
}
exports.MapAction = MapAction;
//# sourceMappingURL=map-action.js.map

107voto

euvl Points 2422

Vous devez exporter un par défaut qui se présentera comme suit :

export default class MapAction implements IMapAction {...

Et l'importer en tant que :

import MapAction from './map_action_file';

Alternativement, si vous voulez exporter multiple à partir du module, vous pouvez faire quelque chose comme.. :

export class MapAction ...
export class MapSomethng ...

Et l'importer comme suit :

import { MapAction, MapSomething } from './map_action_file';

20voto

Datsos Points 171

Vérifiez que votre importation est correcte. Vous pourriez manquer {} par exemple.

import LatLngLiteral from '';

à

import { LatLngLiteral } from '';

-8voto

Harsha Goli Points 347

Depuis les classes en javascript sont des sucres syntaxiques je me suis dit que j'allais essayer de résoudre ce problème sans eux. Pour moi, le passage de l'architecture aux prototypes semble avoir résolu mon problème. Je le poste au cas où quelqu'un d'autre serait confronté à ce problème, mais qu'il a déjà fait le nécessaire. export default

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X