2016-10-27 8 views
0

いくつかのクラスをメインクラスにインポートしようとしていますが、エラーが発生します。 Uncaught SyntaxError:行の予期しないトークンのインポートimport ApiDto = Model.DtoModel.ApiDto;クラスモジュールを別のクラスにインポートする

enter image description here

二つのファイル間で同じモジュール名を共有する2つのDTOモデルがあります。

export module DtoModel { 
    export class ApiDto { 
    } 
    export class ApiDtoItem { 
     public method: string; 
     public object: any; 
    } 
} 

export module DtoModel { 
    export class User { 
     public userNo: number; 
    } 
} 

これはプロジェクトの構造です。ここで

enter image description here

Main.ts

/// <reference path="jquery.d.ts" /> 

import * as Model from "../DtoModels/./ApiDto"; 

// breaks on next line! 
import ApiDto = Model.DtoModel.ApiDto; 

export class Main { 
    private Url: string; 

    constructor() { 
     var apidto = new ApiDto(); 
     this.Url = "http://localhost:80/api/main"; 

     var response = jQuery.post(this.Url, (data: ApiDto, textStatus: string, jqXHR: JQueryXHR) => { 
      apidto = data; 
     }); 

     console.log(response); 
    } 
} 

var main: Main = new Main(); 

は私のコンパイルオプションは次のとおりです。

{ 
    "compilerOptions": { 
    "target": "es6", 
    "noImplicitAny": true, 
    "noEmitOnError": false, 
    "sourceMap": true, 
    "inlineSources": true 
    }, 
    "compileOnSave": true 
} 

答えて

1

あなたはES6(tsconfig.jsonで"target": "es6")にごtypescriptですがコンパイルされています。しかし、ブラウザはネイティブにES6のインポート/エクスポートをサポートしていないため、エラーになります。

+0

私はChome 54またはFirefox 49がES6 – wonea

+0

をサポートしていると思っていましたが、ほとんどのES6機能がサポートされています。しかし、ブラウザはモジュールを読み込むことができません。そのため、現時点では、インポート/エクスポートがネイティブに実装されていません。 Webpack、Browserify、Rollupなどのバンドルを使用するか、SystemJSのようなモジュールローダーを試してください – lena

+1

ES6モジュールローダー標準が開発中です。https://whatwg.github.io/loader/ – lena

関連する問題