2016-03-23 4 views
3

は、単純な二活字ファイルでのVisual Studio 2015での活字体のプロジェクトがあります:JavaScriptエラー:予期しない匿名System.registerコール

foo.ts

export class Foo { 
    bar(): string { 
     return "hello"; 
    } 
} 

app.ts

/// <reference path="foo.ts"/> 
import {Foo} from './foo'; 
var foo = new Foo(); 

foo.tsは

にコンパイルされます。

foo.jsは

System.register([], function(exports_1) { 
    var Foo; 
    return { 
     setters:[], 
     execute: function() { 
      Foo = (function() { 
       function Foo() { 
       } 
       Foo.prototype.bar = function() { 
        return "hello"; 
       }; 
       return Foo; 
      })(); 
      exports_1("Foo", Foo); 
     } 
    } 
}); 

私はhtmlページにfoo.jsはをロードすると、Google Chromeのコンソールがエラーを示しています

「system.src.js:4935キャッチされない例外TypeError:予期しません匿名System.registerは」

明らかに、これはラインである

System.register([], function(exports_1) 
tsconfig.jsonでの

コンパイラオプション:

{ 
"compilerOptions": { 
    "target": "es5", 
    "module": "system" 
    } 
} 
のindex.htmlで

スクリプトのダウンロード:

<script src="./lib/system.js"></script> 
<script src="./app/foo.js"></script> 
<script src="./app/app.js"></script> 

TSCバージョン:私はしません1.9.0-dev.20160322

何かをインポートしてapp.jsファイルにすべてを入れると、コードは正常に動作し、エラーは発生しません。 エラーを解決するにはどうすればよいですか?

答えて

8

私は問題が何であるかを知りました。間違った方法でアプリケーションを初期化しました。

初期化のindex.htmlに追加する必要があり、このような何か:

<script> 
    System.config({ 
      packages: { 'app': { defaultExtension: 'js' } } 
    }); 
    System.import('app/app'); 
</script> 

そしてfoo.jsはapp.jこのように S含めるように間違っていた:

<script src="./app/foo.js"></script> 
<script src="./app/app.js"></script> 
関連する問題