2016-12-13 12 views
0

私はTypescriptとSystem.jsを試しています。 Typescriptコンパイラは、-wフラグを付けて実行しています。HTMLファイルでSystem.jsを使用してtypescriptクラスメソッドを呼び出す

私は「を」でそれにアクセス遊びをインポートすることはできませんが、ページのロード時メソッドを呼び出すしたいと思います:

HTMLファイル:

<!doctype html> 
<head> 
    <script src='//cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.41/system.js'> </script> 
    <script> 
    System.import('./play.js').then(function(play) { 
     play.start(); 
    }); 
    } 
    </script> 
</head> 
<body> 
</body> 

play.tsファイルを:

export class Play { 
    start() { 
    alert('hello...'); 
    } 
} 

エラー:Uncaught (in promise) TypeError: play.start is not a functionが表示されます。何か案は?

答えて

2

System.import結果はクラスではなくモジュールです。返されたモジュールは、そこからエクスポートされたすべてのものへの参照を持ちますので、Playクラスをplay.Playとして取得できますが、start()メソッドを呼び出すには、まずそのクラスのオブジェクトをnewで作成する必要があります。このようなものがうまくいくはずです:

<script> 
    System.import('./play.js').then(function(play) { 
     var player = new play.Play(); 
     player.start(); 
    }); 
    } 
    </script> 
+0

ありがとうございます - 私は '名前空間'または何かにパラメータ名を変更すると思います – Gerry

関連する問題