angularjs绝对打造视觉工作室2015

时间:2015-08-19 07:04:13

标签: angularjs visual-studio-2015 typescript1.5 definitelytyped

我试图让我的第一个angularjs项目在Visual Studio 2015中运行。工作正常,直到我尝试移动到Typescript。安装了DefinitelyTyped项目并获得了大量错误消息。

以下是重现方法:

  • 创建一个空的ASP.NET 4.5.2应用程序
  • Nuget AngularJS Core 1.4.4
  • Nuget AngularJS.TypeScript.DefinitelyTyped 4.1.1(包含jQuery 0.0.1)
  • 添加空的TypeScript文件
  • 添加

    /// <reference path="typings/angularjs/angular.d.ts" />
    

    到该文件。

  • 当我得到444错误时,从

    开始
    Error   TS2411  Property 'find' of type '{ (selector: string): 
    IAugmentedJQuery; (element: any): IAugmentedJQuery; (obj: JQuery): 
    IAugment...' is not assignable to string index type 'HTMLElement'.  
    TypeScript Virtual Projects l:\M\eigene dateien\visual studio 
    2015\Projects\WebApplication3\WebApplication3\Scripts\typings
    \angularjs\angular.d.ts
    

知道我做错了什么或如何解决它?

3 个答案:

答案 0 :(得分:34)

我检查了这个包,大多数错误似乎来自jquery.d.ts文件,它看起来很旧。该文件仍然使用“bool”而不是“boolean”,这是很久以前发生的重大变化。

我通过将“jQuery.Typescript.DefinitelyTyped”添加到项目中来修复它,该项目将jQuery.d.ts文件升级到正确解析的版本。一旦我这样做,所有的编译器错误都消失了。

这似乎是nuget包创作中的一个错误。我将考虑在github上打开一个问题。

希望对你有用。

更新:我在GitHub https://github.com/borisyankov/DefinitelyTyped/issues/5446

中打开了这个问题

答案 1 :(得分:4)

我遇到了同样的问题,但上述解决方案对我来说并不奏效。 已经安装了jQuery.Typescript.DefinitelyTyped,因为angularjs.TypeScript.DefinetlyTyped包需要它。

我修理了:

  1. 卸载angularjs包。
  2. 卸载angularjs.TypeScript.DefinetlyTyped包。
  3. 卸载jQuery.Typescript.DefinitelyTyped
  4. 安装jQuery.Typescript.DefinitelyTyped
  5. 安装angularjs.TypeScript.DefinetlyTyped包。
  6. 安装angularjs包。
  7. 感谢Michael提供提示。

答案 2 :(得分:4)

问题是由VS 2015中的NuGet引起的,因为它默认安装最旧版本的依赖项,在这种情况下安装AngularJS DT包的古老jQuery DT包,如here所述。

我通过这样做来解决这个问题更简单:

  1. 管理项目的NuGet包
  2. 仅显示已安装的软件包
  3. 选择jquery.TypeScript.DefinitelyTyped
  4. 升级
  5. 享受!