题 146错误:打字稿功能1.5。目前的语言水平是1.4


我在Visual Studio 2015(带resharper)的上下文中工作,并引用了node.js的typescript定义文件。我有3个其他VS项目正在使用node.d.ts没有问题。然而,在这个新项目中,我现在有146个错误说同样的事情:

“Typescript Feature 1.5。当前语言级别为1.4”。

对于我的生活,我不知道告诉Visual Studio(或Resharper?)使用最新的打字稿语言版本。

我试过了: 工具>选项>打字稿>项目>常规> ECMAScript6 (选择)的 没用

另外:npm install -g typescript 没用

我怎么告诉VS使用Typescript 1.5.3(node.d.td要求的)?


91
2017-08-28 18:17


起源


是否 这个答案帮帮我? - Sunil D.
Thx的链接。看起来很有希望,但无法修复。我打开了两个VS项目。一个引用node.d.ts没问题,另一个拒绝它。很奇怪。 - brando
不确定,但可能与VS 2015中的bug有关 stackoverflow.com/questions/32273429/...? - Artiom
你可能是对的Artiom。据我所知,您无法在Visual Studio 2015社区中实际使用ECMAScript 6。也许在VS Code中,但不是VS社区。在您引用的那一刻,例如“导入”,它被标记为未定位到正确的语言级别。那么....你如何针对正确的语言水平? - brando


答案:


这是一个ReSharper设置。从Visual Studio的菜单栏中,单击“Resharper”→“选项”→“代码编辑”→“TypeScript”→“检查”,然后将TypeScript语言级别更改为相关值。


176
2017-09-03 07:20



是的,我已经这样做了,Resharper的重新配置修复了Typescript代码中的intellisense错误。剩下的问题是,在进行构建时,typescript文件中的ECMAScript 6表示法被标记为构建错误。 - brando
哪种符号不适合你?也许他们在ES6中得到支持但在Typescript 1.5中还没有? - adrian h.
基本的ES6符号如“const”或“let”被标记为“Build:'const'声明仅在定位ECMAScript 6及更高版本时可用。” - brando
很奇怪,不幸的是我无法想象为什么会出现这种情况。我可以给你的一个提示是直接从VS2015报告问题:点击右上方的笑脸,“发送皱眉”。当我遇到问题时,我在一周内得到了MS工程师的答复! - adrian h.
还需要注意的是,如果你有一个带有TypeScript的DNX项目和关于目标而不是ES6的错误消息,那么修复程序将出现在ReSharper 10.0的下一个EAP中。问题是ReSharper在10.0 EAP6之前不知道tsconfig.json中的编译器选项。 - Anton


我发现了如何解决这个问题。首先,如果您正在使用Resharper,正如其他人所提到的那样,您需要指出您正在使用的打字稿的版本:

enter image description here

但是,在Visual Studio中,您需要转到 工具/扩展和更新 并将Typescript扩展升级到最新版本。
enter image description here

通过在“已安装”选项卡下搜索“typescript”来执行此操作。在突出显示的黄色框中,您应该会看到一条消息,指出“更新”选项卡下有任何可用的更新。转到“更新”选项卡,将您的打字稿扩展名更新为最新版本。 (我已经进行了更新,因此我现在无法使用Typescript进行更新选择)。

更新:
最简单的方法是下载并安装“Typescript for Visual Studio”以获取最新版本: https://www.microsoft.com/en-us/download/details.aspx?id=48593


42
2017-12-11 19:03





有点偏离主题但是因为我在寻找错误“ECMAScript 6功能的解决方案时找到了这个线程。你当前的语言水平是:ECMAScript 5”......

我想在Antons关于ES6和Resharper 10的评论中添加一个注释。

如果您收到错误“ECMAScript 6 feature。您当前的语言级别为:ECMAScript 5”,则可以更改Resharper 9.1中的级别,如本文所述 如何在Visual Studio 2013中使用ECMAScript 6语法

我现在跑9.2了,就这样做了。 Resharper选项> Javascript>检查>“将Javascript语言级别更改为ES6”


9
2017-12-09 14:06



完全不偏离主题 - 非常有帮助。重要的是要注意两者 JS 和 TS 检查需要 都 设置为他们想要的值。我错过了 JS 检查设定。 - atconway
请参见 我的评论 在“ECMAScript 6功能的其他版本设置上。您当前的语言级别为:ECMAScript 5”错误。 - Stephen Baker


现在有一个适用于Visual Studio 2015的TypeScript 1.5。获取它 https://blogs.msdn.microsoft.com/typescript/2015/07/20/announcing-typescript-1-5/

它实际上适用于VS 2013,但强烈暗示它也适用于2015年:“TypeScript 1.5是新发布的Visual Studio 2015的一部分。”


1
2017-08-11 15:45





确保在项目XML中设置正确的版本。请参阅以下节点:

<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
  <TypeScriptTarget>ES6</TypeScriptTarget>
  <TypeScriptJSXEmit>None</TypeScriptJSXEmit>
  <TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled>
  <TypeScriptNoImplicitAny>False</TypeScriptNoImplicitAny>
  <TypeScriptModuleKind>CommonJS</TypeScriptModuleKind>
  <TypeScriptRemoveComments>False</TypeScriptRemoveComments>
  <TypeScriptOutFile />
  <TypeScriptOutDir />
  <TypeScriptGeneratesDeclarations>False</TypeScriptGeneratesDeclarations>
  <TypeScriptNoEmitOnError>True</TypeScriptNoEmitOnError>
  <TypeScriptSourceMap>True</TypeScriptSourceMap>
  <TypeScriptMapRoot />
  <TypeScriptSourceRoot>~/app/</TypeScriptSourceRoot>
  <TypeScriptExperimentalDecorators>True</TypeScriptExperimentalDecorators>
</PropertyGroup>

-1
2018-04-11 20:08