Visual Studio 2015 RC Typescript实验装饰器错误

Gra*_*eme 31 visual-studio-2015 typescript1.5 angular

如何在VS2015中禁用以下错误?

TS1219对装饰器的实验支持是一项在将来的版本中可能会发生变化的功能.指定"--experimentalDecorators"以删除此警告.

在此输入图像描述

我正在尝试使用Angular2注释.我尝试将以下手动添加到项目文件中,但没有运气:

<TypeScriptExperimentalDecorators>True</TypeScriptExperimentalDecorators>
Run Code Online (Sandbox Code Playgroud)

我还安装了TypeScript 1.5.0 beta扩展.

v_b*_*v_b 37

Visual Studio 2015支持从Typescript版本1.8开始的tsconfig文件.在项目的根目录下创建tsconfig.json文件并添加experimentalDecorators编译器选项.

例:

{
  "compileOnSave": true,
  "compilerOptions": {
    "module": "commonjs",
    "sourceMap": true,

    "experimentalDecorators": true
  }
}
Run Code Online (Sandbox Code Playgroud)

对于旧版本:

https://github.com/Microsoft/TypeScript/issues/3934

如果您有项目文件,则不会接受tsconfig.项目文件优先.我们仍然在刷新VS项目和tsconfig之间的集成故事,因为您可以在两者中指定编译器选项.

所以要禁用错误信息,右键单击项目文件,卸载项目,然后右键单击编辑项目文件,在文件末尾应该有一个配置部分,添加:

<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
  ....
  <TypeScriptExperimentalDecorators>true</TypeScriptExperimentalDecorators>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

保存并重新加载.

您可能还需要TypeScriptEmitDecoratorMetadata来映射--emitDecroatorMetadata

  • 我没有为我的社区2015工作,重启IDE也是如此 (4认同)
  • 这对我有用.给定的文本缺少右括号(>). (2认同)
  • 这对我来说是'VS 2015社区的更新3`.谢谢:) (2认同)

un3*_*33k 28

将IDE升级到最新版本.然后在项目的根目录下创建tsconfig.json文件(如果您还没有).然后添加experimentalDecorators为编译器选项.

例:

{
  "version": "1.5.0",
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "declaration": false,
    "noImplicitAny": false,
    "removeComments": true,
    "noLib": false,
    "emitDecoratorMetadata": true,
    "sourceMap": true,
    "listFiles": true,
    "outDir": "dist",
    "experimentalDecorators": true
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记在更新`tsconfig.json`文件后重新启动IDE.至少,这就是我与VS Code的关系. (8认同)
  • 这是Visual Studio Code的答案; 问题是专门针对Visual Studio 2015(可能是Visual Studio的Node Tools),这是一个完全不同的产品,它(目前)不支持tsconfig.json (6认同)
  • vs社区2015,重新启动,没有为我工作 (2认同)

小智 11

在Visual Studio 2015中,您必须TypeScriptExperimentalDecorators在TypeScript项目文件中启用.

卸载项目文件,然后添加以下行:

<TypeScriptExperimentalDecorators>True</TypeScriptExperimentalDecorators>
Run Code Online (Sandbox Code Playgroud)

我复制了完整的PropertyGroup,以便您可以找到添加它的位置:

<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
  <TypeScriptRemoveComments>false</TypeScriptRemoveComments>
  <TypeScriptSourceMap>true</TypeScriptSourceMap>
  <TypeScriptTarget>ES5</TypeScriptTarget>
  <TypeScriptJSXEmit>None</TypeScriptJSXEmit>
  <TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled>
  <TypeScriptNoImplicitAny>False</TypeScriptNoImplicitAny>
  <TypeScriptModuleKind>System</TypeScriptModuleKind>
  <TypeScriptOutFile />
  <TypeScriptOutDir />
  <TypeScriptGeneratesDeclarations>False</TypeScriptGeneratesDeclarations>
  <TypeScriptNoEmitOnError>True</TypeScriptNoEmitOnError>
  <TypeScriptMapRoot />
  <TypeScriptSourceRoot />
  <TypeScriptExperimentalDecorators>True</TypeScriptExperimentalDecorators>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)


小智 5

发现我还必须为元数据添加标签

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
    <!--other -->
    <TypeScriptExperimentalDecorators>True</TypeScriptExperimentalDecorators>
    <TypeScriptEmitDecoratorMetadata>True</TypeScriptEmitDecoratorMetadata>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)