【发布时间】:2017-07-10 18:06:31
【问题描述】:
我正在 WebStorm 中使用 AngularJS (1.6.5) 开展一个小项目。这里的问题是 WebStorm 无法识别 AngularJS 定义的任何全局变量。我安装了 AngularJS 和正确的@types。我还将 AngularJS 定义为 外部库,并且我还确保 AngularJS 不是 excluded by WebStorm。然而 WebStorm 仍然给我错误。
例子:
logConfig.$inject = ["$logProvider", "$compileProvider"];
function logConfig($logProvider: ng.ILogProvider, $compileProvider: ng.ICompileProvider) {
// $logProvider.debugEnabled(false); //TODO add this in production
// $compileProvider.debugInfoEnabled(false); //TODO add this in production
// Disable comment and class directives. Boosts the performance
$compileProvider.commentDirectivesEnabled(false);
$compileProvider.cssClassDirectivesEnabled(false);
}
上面的代码在 WebStorm 中得到以下错误:Unresolved variable $inject。 ($inject 是红色的,当我将鼠标悬停在它上面时会给出消息)
我错过了什么吗?
更新
我可能发现了问题。 WebStorm 不会重新调整 AngularJS,即使它在我的 Node_modules 中,我有正确的类型(@types/angular)并且我已注册为外部库(文件-->设置-->语言和框架-->JavaScript- ->图书馆)。
当我输入import * as ng from "an|" 并点击“ctrl + space”时,WebStorm 并没有给我任何关于 Angular 库的提示。我猜这些问题是有联系的。
有人知道是否有其他选项可以让 WebStorm 重新调整 AngularJS 的大小?
【问题讨论】:
-
您能否展示一下 logConfig 是如何定义的,以及当您在 cmd 上单击它时 IDE 如何看到它的定义。到目前为止,我们没有运气重现这个问题。所有在 foo.bar = [] 中定义为 bar 的符号都被 IDE 视为一个新符号。
-
@EkaterinaPrigara,当我回到家时,我会发布 logConfig(在哪里可以找到它?)。我可能已经找到了问题,但我不知道如何解决它。当我键入“import * as ng from "angular"”时,WebStorm 不会重新调整(不给出任何提示)关于 Angular 的大小。所以它不会重新调整库。它在我的 node_module 以及 @types/angular 中。我还在 WebStorm 中将该库注册为 Angular 模块(文件-->设置-->语言和框架-->JavaScript-->库)
-
抱歉,我错过了您使用的是 TypeScript 代码而不是 JavaScript 代码这一点。对于 TypeScript,Libraries 配置不适用。请确保您的项目中有一个 tsconfig.json 文件。这是任何 TypeScript 项目的要求。还请确保在 Preferences | 中启用了 TypeScript 服务。语言和框架 |打字稿
-
请将解决方案作为答案发布,而不是作为问题的更新。这是为了避免混淆。你可以看到我已经回滚了你的编辑。检查revisions。谢谢。
标签: angularjs typescript webstorm