AngularJS Visual Studio 2015 年的智能感知

AngularJS Intellisense in Visual Studio 2015

最近我开始使用 Visual Studio 2015 Community 而不是 Brackets。正如网站上所说,它对 Angular 有某种支持,但是,除了 HTML 文件,我什至没有在任何地方看到它。 即使是变量 "angular",将鼠标悬停在其上时,也会打印出

angular <type unknown>

我添加了一张图片来解释我的意思。

我试图将 JavaScript TextEditor 引用更改为隐式(Web),但是,在重新启动后,它又恢复为隐式(Windows)。

我使用 Web Essentials,我知道它具有创建 Intellisense JS 和 TS 文件的功能,但是,此功能始终处于禁用状态。我打开项目中的每个目录查看,这个功能一直是关闭的。

此外,我尝试用 _references.js 手动创建 Scripts 目录,但它非常有效......糟糕,我需要将它移动到另一个目录并将它 return 放到上一个目录中才能制作自动同步等选项可用。关于 _references.js

同样的事情

为了让这个案例更简洁: 我手动创建 _references.js。现在它有 Anto-Sync 和 Update References 选项。 —> Reboot Visual Studio 2015 —> _references.js 没有这样的选项了。 但是,即使在重新启动之前,如果我更新它,它也会跳过根文件夹中除 app.js 之外的所有内容。

P.S。 AngularJS IntelliSense 在 HTML 文件中工作,即我可以放置 ng-* 属性。所以...我认为,有些东西在 VS 2015 中不起作用。 P.S.S.我将 NodeJS 用于 WebApp 的服务器部分。

您是否尝试过在需要 Intellisense 的 js 文件的开头使用它?

/// <reference path="pathToAngular.js" />

https://msdn.microsoft.com/en-us/library/bb385682.aspx

好吧,我知道你正在寻找一个解决方案来使用 Instellisense 和 Visual Studio,无论如何。

我也在使用 Visual Studio,但我转而使用 TypeScript。它实际上是在写一种扩展的强类型JavaScript。这意味着您可以声明变量的类型。示例: var x:string = 'test';

课程有优点也有缺点。我喜欢它的优点,这就是我使用它的原因。

  1. 您必须编译您的代码。了解解析您的 Javascript 以进行错误检查和从 *.ts 文件到 *.js 文件的转换过程。
  2. 你可以添加header个文件。你开发过C/C++应用程序吗?好吧,在 TypeScript 中,您可以添加定义或 *.d 文件,它们实际上只是用于检查 JavaScript 函数定义的头文件。
  3. Visual Studio 上的 TypeScript 使用 Intellisense。 这就是我们所说的!

#2 的优势很大。它可以防止您执行错误的代码,例如:

setTimeout(myFunc, 'abc');

因为第二个参数应该是数字而不是字符串,所以这不起作用。 但正如我所说,您必须将定义文件添加到您的 TypeScript 解决方案才能正常工作。

如果您喜欢尝试(您不会后悔),请按照以下步骤操作:

  1. 为 Visual Studio 下载并安装 TypeScript - 按照 link https://www.typescriptlang.org/
  2. 创建一个 TypeScript Projet - 非常简单,在为 Visual Studio;
  3. 安装 TypeScript 后已经有一个模板
  4. 使用 NuGet 添加 angular、jquery 包
  5. 安装以下定义包 - angularjs.TypeScript.DefinitelyTyped - https://www.nuget.org/packages/angularjs.TypeScript.DefinitelyTyped/

我相信这是一个比普通 Intellisense 更好的解决方案,因为它还可以防止您向 angular 中的函数发送错误的参数。由于 JavaScript 允许任何变量是任何类型,因此当您的 JS 中的任何内容中断时,很难进行代码审查。使用 TS,这不应该发生。如果这样做,编译将失败。