使用HTML文件中的System.js来调用typescript类方法

时间:2016-12-13 20:42:07

标签: typescript systemjs

我正在尝试使用Typescript和System.js。 Typescript编译器使用-w标志运行。

我想在页面加载时调用一个方法,我可以导入播放,但不能用'then'访问它:

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。有什么想法吗?

1 个答案:

答案 0 :(得分:4)

System.import结果是一个模块,而不是一个类。返回模块引用了从它导出的所有内容,因此您可以将Play类作为play.Play,但要调用start()方法,您必须首先使用{创建该类的对象{1}}。这样的事情应该有效:

new