1. ホーム
  2. javascript

[解決済み] エラーが発生しました。*.default はコンストラクタではありません

2023-08-20 03:52:52

質問

typescriptファイルからトランスパイルされたjavascriptのコードをテストしていると、以下のエラーが発生します。

以下がそのエラーです。

Error: _mapAction2.default is not a constructor

以下は、エラーの原因となったコードの行です。

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

以下はオリジナルのtypescriptファイルです。 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;
    }

}

以下は、トランスパイルされた.js-fileです。 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

どのように解決するのですか?

をエクスポートする必要があります。 デフォルト のような値をエクスポートする必要があります。

export default class MapAction implements IMapAction {...

とインポートします。

import MapAction from './map_action_file';

あるいは 複数 をモジュールからエクスポートしたい場合は、次のようにすることもできます。

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

そして、以下のようにインポートします。

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