【问题标题】:VS2015 RTM Angular2/TypeScript problemsVS2015 RTM Angular2/TypeScript 问题
【发布时间】:2015-10-22 09:50:10
【问题描述】:

如何解决下面 VS2015 报告的错误?

我正在使用 VS2015 RTM,并且我创建了一个非常简单的 Angular 2 Web 应用程序(如 angular.io 上所示)。 构建解决方案时,出现以下两个错误:

  • 错误 TS1148:构建:除非提供“--module”标志,否则无法编译模块。

我试图通过使用 tsconfig.json 来解决这个问题,但没有任何乐趣。

  • 错误 TS1219:构建:对装饰器的实验性支持是一项可能在未来版本中更改的功能。指定“--experimentalDecorators”以删除此警告。

我尝试通过在 csproj 文件中添加 TypeScriptExperimentalDecorators 元素并将其设置为 true 来解决此问题,但它并没有消除错误。

有什么建议吗?

【问题讨论】:

  • 您的 tsconfig.json 看起来如何?见this one(来自另一个SO用户,不是我的)和这个from ngconf2015demo
  • 我从命令行运行这个:tsc --watch -m commonjs -t es5 --emitDecoratorMetadata --experimentalDecorators your-file.ts
  • @EricMartinez 我的 tsconfig.json 是正确的,但 VS2015 RTM 无法识别它。也许 MS 会在未来的升级中改变这一点(我希望如此)。
  • @TGH 感谢您的建议,但我希望 VS2015 在编辑后自动转译 ts 文件。它现在正在工作。请参阅下面的帖子。

标签: visual-studio-2015 angular typescript1.5


【解决方案1】:

这里也是同样的问题。找到了这个解决方法:

  1. 更改“Microsoft.TypeScript.Default.props”(“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\TypeScript)更改/添加以下属性:
<TypeScriptModuleKind>AMD</TypeScriptModuleKind>
<TypeScriptEmitDecoratorMetadata>True</TypeScriptEmitDecoratorMetadata>
<TypeScriptExperimentalDecorators>True</TypeScriptExperimentalDecorators>
  1. 在项目文件中添加/更改相同的属性

注意:只有在两个文件中都启用了实验性装饰器时,它们才会被启用。

【讨论】:

  • 我只是通过更改 csproj 文件让我的工作。我还检查了我的“Microsoft.TypeScript.Default.props”文件,我没有在该文件中设置相关属性。请注意,csproj 文件有两个区域(一个用于调试,一个用于发布),您需要在其中进行这些更改。也许您没有在这两个地方都制作它们 - 这就是您在默认道具文件中需要它的原因。 [?]
  • 就我而言,更改 csproj 中的两个区域(在两个不同的 vs2015 企业安装中)是不够的。对我来说最奇怪的是,experimentalDecorator 只有在两个文件中都启用它们时才启用。如果我删除默认文件中的条目或将其设置为 false,则忽略 csproj 配置。如果我在默认文件中启用装饰器,它们是否启用取决于 csproj 的设置。奇怪
  • 你是对的!如果我使用“TypeScript HTML 应用程序项目”的模板在 VS2015 RTM 中创建一个项目,那么只需在 csproj 中设置这些属性似乎就足够了。但是,如果我使用 MVC 模板创建项目,那么我需要按照您的指示在两个地方设置属性。感谢您的帮助!
  • 不要复活旧帖子或任何东西,但我在 VS2015 中尝试过,它仍然将属性装饰器显示为错误。还有其他想法吗? O.o
  • 更新到 TypeScript 1.6 后我又遇到了同样的问题。 VS2015 要求我升级 typescript 版本,之后没有更多启用的实验装饰器。事实证明,在 .csproj 中为活动配置创建了一个重复的配置 typescript 部分
【解决方案2】:

TS1219 看这里:http://dotnetspeak.com/2015/06/angular-2-in-visual-studio-2015-with-typescript

您可以在项目文件中将 TypeScriptExperimentalDecorators 属性设置为 true。

【讨论】:

  • 仅供参考 - 不要忘记在 csproj 文件的调试和发布区域中设置 TypeScriptExperimentalDecorators 属性。我把它放在了发布区域,我在调试模式下运行!
猜你喜欢
  • 2023-03-10
  • 1970-01-01
  • 2017-02-01
  • 2015-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-23
相关资源
最近更新 更多