什么TS Emit失败意味着在打字稿?

时间:2016-07-01 10:00:51

标签: angularjs typescript atom-editor

我一直得到一个小小的红色弹出窗口" TS Emit Failed"当我按cmd + S.控制台不会显示任何错误。什么可能是错误的或什么可以导致这种警报?有人可以向我解释一下吗?感谢。

screenshot of the error on Atom

这是我的tsconfig.json文件

{ 
"compileOnSave": true,
"compilerOptions": {
    "module": "commonjs",
    "target": "es6",
    "sourceMap": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "noEmitHelpers": true,
    "noEmitOnError": true
},
"exclude": [
    "node_modules",
    "platforms"
] 
}

1 个答案:

答案 0 :(得分:2)

Typescript是JavaScript的“超集”,这意味着它包含了所有JavaScript,然后还有很多额外的东西,比如能够设置类型和更好的语法。虽然Web浏览器或节点知道如何解释和运行JavaScript,但它们无法理解Typescript允许的所有额外内容。这意味着在使用之前,必须“编译”Typescript(就像编译一样,但它不会将源代码转换为机器代码,而是将Typescript源代码转换为JavaScript源代码,而这反过来可以通过浏览器)。

当转换器运行时,它“发出”JavaScript。这个错误可能意味着你的Typescript中有一个错误,导致它无法成功地转移到JavaScript中,即转换器无法发出正确的JavaScript。

如果您需要帮助找出导致错误的原因,您应该发布您的代码。 :)

更新

此问题为discussed in this thread。实质上,JS Outdated错误意味着上次保存时编译的.js文件与您编译{{1中的当前代码时将发出的.js文件不匹配文件。似乎有些人即使在他们救了之后就已经出现了这个节目。尝试更新.ts和/或在atom-typescript中指定out媒体资源。