CodeQL 文档

重复依赖项

ID: js/angular/duplicate-dependency
Kind: problem
Security severity: 
Severity: warning
Precision: very-high
Tags:
   - maintainability
   - frameworks/angularjs
Query suites:
   - javascript-security-and-quality.qls

点击查看 CodeQL 代码库中的查询

AngularJS 中的依赖项注入是通过提供所需依赖项的名称来完成的。多次提供相同的名称是多余的,因为 AngularJS 注入器使用缓存来存储实例化的依赖项。

建议

每个依赖项的名称只包含一次。

示例

以下示例展示了一个 AngularJS 控制器,其中$cookies是一个重复的依赖项。

angular.module('myModule', [])
    .controller('MyController', ['$scope',
                                 '$cookies',
                                 '$cookies', // REDUNDANT
                                 function($scope, , $cookies1, $cookies2) {
        // ...
    });

这是有问题的,因为程序员可能会认为两个参数$cookies1$cookies2是不同的实例,但它们不是。

相反,依赖项应该只列出一次

angular.module('myModule', [])
    .controller('MyController', ['$scope',
                                 '$cookies',
                                 function($scope, $cookies) {
        // ...
    });

参考文献

  • ©GitHub, Inc.
  • 条款
  • 隐私