Systemjs使用typescript转换异步函数

时间:2016-01-14 02:32:04

标签: typescript async-await systemjs transpiler

我可以使用.ts工具手动构建tsc个文件。我看到为async / await关键字生成了包装器。

但是我有使用systemjs动态设置transile的问题。

的index.htm:

<script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.19.16/system.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/typescript/1.7.5/typescript.min.js"></script>

<script>
  System.config({
    transpiler: 'typescript',
    typescriptOptions: {
      target: 'es6'
      },
    packages: {
      '': {
        defaultJSExtensions: 'ts'
      }
    }
  });

  System.import('app').catch(console.error.bind(console));
</script>

app.ts:

console.log('hello');

async function run() {
  console.log('world');
}

run();
开发人员控制台中的

错误:

SyntaxError: missing ; before statement

请参阅plnkr

1 个答案:

答案 0 :(得分:0)

问题在于指定格式&#39; esm&#39;。或者将import之类的关键字添加到.ts文件中,以便systemjs可以选择正确的加载程序。

System.config({
  transpiler: 'typescript',
  meta: {
    'app.ts': {
      format: 'esm'
    }
  }
});

System.import('app.ts').catch(console.error.bind(console));

更新了plnkr

现在它就像一个魅力!