Injecting Multiple Dependencies

This:

  ...
  export class MainComponent {
    ...
    static $inject = ['$log', '$scope'];
    ...
    constructor(private $log, private $scope) { 
    ...
  }
  ...

is equivalent to this (Don't do this!):

  ...
  export class MainComponent {
    ...
    static $inject = ['$log', '$scope'];
    ...
    constructor(private $a, private $b) { 
    ...
  }
  ...

But this:

  ...
  export class MainComponent {
    ...
    static $inject = ['$log', '$scope'];
    ...
    constructor(private $scope, private $log) { 
    ...
  }
  ...

Will not work at all.

In short, the order of parameters in the $inject property relative to the class constructor is important.