Here is SystemJS + TypeScript plunk、official Angular plunk templateから作成しました。.tsファイルはTypeScriptモジュールとして扱われません
それは
(SystemJS) SyntaxError: Missing initializer in const declaration
at eval()
...
エラーをスローし、明らかにファイルがimport
かexport
文が含まれていないとき.TSは、として、通常のJavaScriptファイル評価:
main.ts
const foo: boolean = 'foo';
console.log(foo);
を
config.js
System.config({
//use typescript for compilation
transpiler: 'typescript',
//typescript compiler options
typescriptOptions: {
emitDecoratorMetadata: true
},
paths: {
'npm:': 'https://unpkg.com/'
},
//map tells the System loader where to look for things
map: {
'app': './src',
...
},
//packages defines our app package
packages: {
app: {
main: './main.ts',
defaultExtension: 'ts'
},
...
}
});
index.htmlを
...
<script src="https://unpkg.com/[email protected]/dist/system.js"></script>
<script src="config.js"></script>
<script>
System.import('app')
.catch(console.error.bind(console));
</script>
...
しかし、ファイルがES6モジュールの兆候を持っていthe same plunk is fine:
main.ts明らか
const foo: boolean = 'foo';
console.log(foo);
export default null;
、もしファイルの拡張子は.tsです。それが何かをインポートするかどうかにかかわらず、それをTypeScriptとして評価することを好むでしょう。
なぜこの設定でこれが起こりますか?どのようにこれを修正することができますか?
'plugin-typescript'を使用してください。 'systemjs'にはトランスポーラーが付属していないので、' transpiler: 'typescript''は動作しません。 – unional
私はそれが本当だとは思わない。 TSは 'export'文があれば動作します。これは質問が言うことです。さもなければ 'const foo:boolean = 'foo''は構文エラーを投げますか? – estus