VS Code无法完成$ routeProvider

时间:2015-11-24 22:58:23

标签: javascript angularjs typescript visual-studio-code typescript-typings

我正在为AngularJs应用尝试VS Code。第一个文件,已经有些东西不起作用,我认为应该是这样。

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

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

好的,现在配置怎么样......

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

好的,我不应该在这一点上得到“.when”的建议吗?我不。我得到“没有建议。”代替。

我做错了什么?

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

对于所有以某种方式导入的全局对象&#34; (或声明为可用),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
});