我碰巧在plunker中运行的Angular示例中出现此错误,其中SystemJS在浏览器中转换TypeScript代码。
本地运行良好的代码没有任何问题。
答案 0 :(得分:3)
这不是一个Angular问题。在浏览器中转换某些类型的TypeScript文件会出现问题。
在我的情况下,我将问题跟踪到单个文件仅导出抽象类 。
// Class used as a "narrowing" interface that exposes a minimal logger
// Other members of the actual implementation are invisible
export abstract class MinimalLogger {
logs: string[];
logInfo: (msg: string) => void;
}
问题是该文件不会导出除抽象类之外的任何。
当我添加任何具体的惰性导出时......就像这样:
export const _ = 0; // hack: must export something "real"
......错误消失了。
我发现只有导出TypeScript接口的文件存在类似问题。你必须给它至少一件事是真实的"。
环境:
此示例的SystemJS配置:
System.config({
// DEMO ONLY! REAL CODE SHOULD NOT TRANSPILE IN THE BROWSER
transpiler: 'ts',
typescriptOptions: {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": ["es2015", "dom"],
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true
},
meta: {
'typescript': {
"exports": "ts"
}
},
...
})