1

我正在为 AngularJs 应用程序尝试 VS Code。非常第一个文件并且已经有些东西不起作用,我认为这是应该的。

var myModule = angular.module("MyModule", ['ngRoute']);

好的,到目前为止一切顺利。它要求我弄清楚“角度”是什么,我很高兴地单击了<reference/>在文件顶部放置一行的选项。

好的,现在配置如何...

myModule.config(function($routeProvider) {
  $routeProvider.
});

好的,此时我不应该得到“.when”的建议吗?我不。我得到“没有建议”。反而。

我究竟做错了什么?

我什至在顶部手动添加了另一个<reference/>标签,将其指向 angular-route.d.ts 文件。没有帮助。

谢谢!

4

1 回答 1

0

不同之处在于,在您的情况下,angular它是一个全局可用的变量(将在window加载脚本时添加到对象中),而$routeProvideris 只是一个常规参数名称。

对于所有以某种方式“导入”(或声明为可用)的全局对象,VS Code 通过使用 TypeScript 定义文件找出这可能来自哪里。VS Code 无法确定某些参数名称来自角度路由器。这只是传递给config方法的函数将注入一些角度依赖项的特定角度行为。您当然可以编写一些使用此参数名称的其他方法。

function calcSquare($routeProvider) {
  return $routeProvider * $routeProvider;
}

仅仅通过这样命名的参数,猜测类型是不正确的。

使用 TypeScript 时,您可以声明这些类型的参数,以便获得 IDE 的支持:

myModule.config(function($routeProvider: angular.route.IRouteProvider) {
  // $routeProvider. // auto-completion available here
});
于 2016-12-13T14:30:03.847 回答