最近我开始使用 Visual Studio 2015 Community 而不是 Brackets。正如网站上所说,它对 Angular 有某种支持,但是,除了 HTML 文件之外,我什至没有在任何地方看到它。 甚至变量“Angular ”,当悬停在其上时,也会打印
angular <type unknown>
我添加了一张图片来解释我的意思。
我尝试将 JavaScript TextEditor 引用更改为隐式 (Web),但是,重新启动后,它又回到隐式 (Windows)。
我使用 Web Essentials,我知道它具有创建 Intellisense JS 和 TS 文件的功能,但是,此功能始终被禁用。我打开项目中的每个目录并检查了它,这个功能始终处于关闭状态。
此外,我尝试使用 _references.js 手动创建 Scripts 目录,但它工作得非常...糟糕,我需要将其移动到另一个目录并将其返回到以前的目录,以使自动同步等选项可用。 _references.js 也是如此
为了让这个案例更加清晰: 我手动创建 _references.js 。现在它有 Anto-Sync 和更新引用选项。 —> 重新启动 Visual Studio 2015 —> _references.js 不再有这样的选项。 但是,即使在重新启动之前,如果我更新它,它也会跳过根文件夹中除 app.js 之外的所有内容。
附注AngularJS IntelliSense 在 HTML 文件中工作,即我可以放置 ng-* 属性。所以...我认为,有些东西在 VS 2015 中不起作用。 附言我使用 NodeJS 作为 WebApp 的服务器部分。
最佳答案
嗯,我知道您正在寻找一种与 Instellisense 和 Visual Studio 一起使用的解决方案,无论如何。
我也在使用 Visual Studio,但我转而使用 TypeScript。它实际上是在编写一种扩展的强类型 JavaScript。这意味着您可以声明变量的类型。示例: var x:string = 'test';
当然有优点和缺点。我喜欢它的优点,这就是我使用它的原因。
- 您必须编译您的代码。将其理解为解析 Javascript 以进行错误检查以及从
*.ts
文件到*.js
文件的转换过程。 - 您可以添加 header 文件。您曾经开发过 C/C++ 应用程序吗?那么,在 TypeScript 中,您可以添加定义或
*.d
文件,它们实际上只是用于检查 JavaScript 函数定义的头文件。 - Visual Studio 上的 TypeScript 使用 Intellisense。这就是我们正在讨论的内容!
第二个优势很大。它可以防止您执行错误的代码,例如:
setTimeout(myFunc, 'abc');
这对于第二个参数应该是数字而不是字符串的情况不起作用。 但正如我所说,您必须将定义文件添加到您的 TypeScript 解决方案中才能正常工作。
如果您喜欢尝试(您不会后悔),请按照以下步骤操作:
- 下载并安装 TypeScript for Visual Studio - 点击链接 https://www.typescriptlang.org/
- 创建 TypeScript Projet - 非常简单,安装 TypeScript for Visual Studio 后已有一个模板;
- 使用 NuGet 添加 Angular、jquery 包
- 安装以下定义包 - angularjs.TypeScript.DefinitelyTyped - https://www.nuget.org/packages/angularjs.TypeScript.DefinitelyTyped/
我相信这是一个比普通智能感知更好的解决方案,因为它还可以防止您向 Angular 中的函数发送错误的参数。由于 JavaScript 允许任何变量为任何类型,因此当 JS 中的任何内容出现问题时,很难进行代码审查。对于 TS,这种情况不应该发生。如果这样做,编译将会失败。
关于javascript - Visual Studio 2015 中的 AngularJS 智能感知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36800918/