【问题标题】:angularjs definitely typed visual studio 2015angularjs 绝对类型的视觉工作室 2015
【发布时间】:2015-11-12 08:19:25
【问题描述】:

我正在尝试让我的第一个 angularjs 项目在 Visual Studio 2015 中运行。在我尝试迁移到 Typescript 之前一直运行良好。安装了DefinitelyTyped项目并收到很多错误消息。

复制方法如下:

  • 创建一个空的 ASP.NET 4.5.2 应用程序
  • Nuget AngularJS 核心 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
    

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    希望对你有用。

    更新:我在 GitHub https://github.com/borisyankov/DefinitelyTyped/issues/5446 中打开了这个问题

    【讨论】:

    • 太棒了!现在工作正常。 我应该说我必须在 Angular 之前添加 jQuery.Typescript.DefinitelyTyped。 我一直想知道 jQuery DefinitiveTyped 的 0.0.1 版本号,但是有很多事情要问关于何时开始使用 Angular... 无论如何,非常感谢。现在使用 Angular 变得更有趣了。
    • 我遇到了同样的问题,只需升级它。
    【解决方案2】:

    我遇到了同样的问题,但上面的解决方案对我来说不起作用。 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 包。

    感谢 Michael 提供提示。

    【讨论】:

    • 您尝试更新了吗?由于 Angularjs Type Script 安装它但旧版本。但是,您的解决方案正在工作:)
    • 您必须将其更新到最新版本,由于某种原因,nuget 正在安装 0.0.1 版本并且它在 2.8.8 上,当 Visual Studio 自动获取打字稿定义时,它似乎并不总是获取最新的或正确的。
    【解决方案3】:

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

    我通过执行以下操作更简单地解决了这个问题:

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

    【讨论】:

      猜你喜欢
      • 2016-06-02
      • 1970-01-01
      • 2016-02-11
      • 1970-01-01
      • 2016-02-05
      • 2016-12-09
      • 1970-01-01
      • 2017-04-10
      • 1970-01-01
      相关资源
      最近更新 更多