突然之间,至少感觉是这样,我的VS17开始将我的TypeScript转换为ECMAScript 6,但是VS不会接受它,并突然引发许多SCRIPT1002和SCRIPT1006错误:“第3行出现JavaScript严重错误, http://localhost:57125/Scripts/js/Modules/Test.js中的第5列\ n \ nSCRIPT1002:语法错误“
我有一个非常简化的TS模块:
module Test {
export class TestObject {
Data: string;
}
}
它转换为
var Test;
(function (Test) {
class TestObject {
}
Test.TestObject = TestObject;
})(Test || (Test = {}));
//# sourceMappingURL=Test.js.map
但是Visual Studio抱怨class
是一种语法错误。
它应该输出的(直到上周的某个时间才完成)
var Test;
(function (Test) {
var TestObject = (function () {
function TestObject() {
}
return TestObject;
}());
Test.TestObject = TestObject;
})(Test || (Test = {}));
我确定VS(或者可能是IE11?)期望ECMAScript 5,但是更改项目属性中的版本对我没有任何帮助(ECMAScript 3、5、6、2016、2017和Next)。我安装了TS 2.8、3.0和3.1。更改此选项也无济于事。模块系统设置为AMD,但这对我来说没有任何改变。要么..
我该如何解决?我已经多次重启了VS,甚至还重新启动了计算机,以防某些愚蠢的进程没有因VS而死。
答案 0 :(得分:0)
原来是我造成了问题。 IE中的CTRL + F5修复了它。
最近,由于要使用某些语法,我将ES版本更改为6。我从未完成代码,而两天前我又捡起了它。它在前两个调试会话中运行良好,可能是因为我没有进行任何更改。突然停止了工作。
回到ES5并没有执行任何操作-错误的代码仍保留在ES6。我想检查一下另一个已转译的JS,发现JS是ES5,这让我认为这可能是一个缓存问题。
果然,IE缓存了ES6 JS,并将文件内容以及错误消息报告回VS。 CTRL + F5 = 0问题。
顺便说一句,我发现IE仅支持ES5。
感谢IE一天半的进餐时间。