Typescript模块和systemjs.从内联脚本实例化类



我正在使用系统模块选项将typescript模块转换为javascript。我正在浏览器中执行此操作。

当初始化typescript生成的模块类的代码也使用systemjssystem.import.加载时,我可以使用这个模块

如何使作为模块一部分的类从javascript代码中可用,而不是通过systemjs加载?例如,在页面中嵌入javascript?

您可以使用SystemJS在Javascript中导入模块。

假设您有一个名为app.ts的模块,该模块导出名为value的变量

应用程序:

export let value = 'ABCASF';

在一个脚本标签中,你可以写:

System.import('app.js').then(function(appModule) {
  console.log(appModule.value);
}, console.error.bind(console));

请记住,您必须为System.import提供的模块名称可能会根据您的设置而有所不同。

TypeScript类被转换为ES5函数,因此您可以通过这种方式在javascript中使用它们。

示例:

export class Example {
  constructor(public someValue: string, private someOtherValue: number) {
  }
  public method() {
    return this.someOtherValue;
  }
}

在脚本标签中是这样的:

  System.import('example.js').then(function(example) {
    // Example class is a function on the module 
    // use new to make a new instance
    var value = new example.Example('a', 5);
    // work as usual 
    console.log(value.method());
  }, console.error.bind(console));

最新更新