模块 "ng" 在 vs 代码中没有导出成员

Module "ng" has no exported members in vs code

我在 visual studio 代码

中输入的所有内容都收到错误消息 Module "ng" has no exported member

在我添加 angular-ui-router 之前,我的打字速度一直在 100%。我不确定这是否是问题所在,但我只是在添加之后才注意到它。

在我的 .d.ts 文件中,我收到关于 angular 本身的特定错误。

我的tsd.json看起来像这样

{
  "version": "v4",
  "repo": "borisyankov/DefinitelyTyped",
  "ref": "master",
  "path": "typings",
  "bundle": "typings/tsd.d.ts",
  "installed": {
    "angular-material/angular-material.d.ts": {
      "commit": "5a8fc5ee71701431e4fdbb80c506e3c13f85a9ff"
    },
    "jquery/jquery.d.ts": {
      "commit": "40c60850ad6c8175a62d5ab48c4e016ea5b3dffe"
    },
    "angularjs/angular.d.ts": {
      "commit": "40c60850ad6c8175a62d5ab48c4e016ea5b3dffe"
    },
    "angularjs/angular-route.d.ts": {
      "commit": "5a8fc5ee71701431e4fdbb80c506e3c13f85a9ff"
    },
    "angularjs/angular-cookies.d.ts": {
      "commit": "5a8fc5ee71701431e4fdbb80c506e3c13f85a9ff"
    },
    "angularjs/angular-animate.d.ts": {
      "commit": "5a8fc5ee71701431e4fdbb80c506e3c13f85a9ff"
    },
    "angularjs/angular-resource.d.ts": {
      "commit": "40c60850ad6c8175a62d5ab48c4e016ea5b3dffe"
    },
    "angular-ui-router/angular-ui-router.d.ts": {
      "commit": "40c60850ad6c8175a62d5ab48c4e016ea5b3dffe"
    }
  }
}

我有点迷失了我已经或没有做的事情来搞砸了。奇怪的是,一切仍然 100% 有效。所以我仍然得到 ng. 的 intellsense,它只是说有错误,每次我 build 我都会在所有文件上得到乘法错误。

更新

我最终在 17 行上注释掉了 import ng = angular;,然后在 angular.d.ts173 行上将 ng.auto.IInjectorService; 更改为 angular.auto.IInjectorService;

这意味着 angular 应用程序中的每个引用现在都是使用 angular 而不是 ng 进行的,这并不理想,但现在可以了。我很确定这不是 "best practice" 修复。

https://github.com/DefinitelyTyped/DefinitelyTyped/issues/7284

检查安装 angular-ui-router 的位置是否有额外的 .d.ts 文件。像

./bower_components/angular-ui-router/api/angular-ui-router.d.ts

删除那个 .d.ts 文件并重新启动 VSCode。如果不存在,请检查项目中的其余文件夹是否有任何重复的 .d.ts 文件。这就是为我解决问题的方法。