如何使Visual Studio的JavaScript格式化工作?

4

由于某些原因,Visual Studio的JavaScript格式化无法理解以下语法:

(function(){

})();

我在这行代码的第二个字符处得到了"expected expression"错误提示:})();

所以我想知道是否有人遇到过这个问题(想要格式化他们的代码,但Visual Studio认为有效的代码存在错误并拒绝这样做),我们该如何解决?


但它具体提示了什么错误呢?从技术上讲,你应该在最后一个闭合圆括号之前的闭合大括号之后放置开/关括号。这可能会是Visual Studio解析器的错误。 - hellatan
我不太明白你的意思,朋友。顺便说一下,我已经更新了我的问题来回答你的问题。 - Namesis
1
我无法在使用VS 2010 Ultimate SP1时重现这个问题。你是怎么做到的?另外,如果你想通过JSLint测试,请使用这个:(function(){}()); - Mrchief
@namesis - Mrchief的通过jslint的示例就是我所说的。 - hellatan
就像@Dan所说的那样,似乎(function(){需要成为文件中的第一段代码才能使格式化程序正常工作。即使是符合JSLint规范的表达式,在(function(){之前有一个分号也无济于事。 - Oliver
不仅仅是编译器不知道它的工作原理 - 我也不知道! - stewart99
4个回答

3

似乎为了让Visual Studio JS编译器满意,你需要在.js文件中将(function(){放在第一行代码。如果你愿意,可以在它之前加上注释/空格,但不能有其他代码。

抱歉,我无法解释为什么要这样做,但这应该可以解决你的问题。


这似乎是让JavaScript格式化程序重新格式化文件的唯一方法。很遗憾,因为前导分号是jQuery插件模板的一部分,旨在防止潜在的错误。 - Oliver

1

请尝试以下方法:

(function () {

} ());

也就是说,我已经将函数参数括号移动到整体括号内部。


0

使用以下快捷键:

ctrl k+d


0

我不得不终止所有的Node.exe任务。重新打开我的Javascript文件后,ctrl+k,ctrl+d又开始工作了。(Visual Studio 2017)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接