title: Angular $interval is not a function issue
body: <p>I know that probably you will mark this as a duplicate but none of sibling topics doesn't solve my problem, so this is my simple date count down directive:</p>
  
  <pre><code>class Clock {
      constructor() {
          this.restrict = 'AC';
          this.replace = true;
          this.template = require('./templates/clock.tpl.html');
          this.scope = {};
      }
      link(scope, elem, attrs, $interval) {
          let end = new Date('05/05/2017 9:00 AM');
  
          let _second = 1000;
          let _minute = _second * 60;
          let _hour = _minute * 60;
          let _day = _hour * 24;
  
          scope.showRemaining = () =&gt; {
              let now = new Date();
              let distance = end - now;
              let days = Math.floor(distance / _day);
              let hours = Math.floor((distance % _day) / _hour);
              let minutes = Math.floor((distance % _hour) / _minute);
              let seconds = Math.floor((distance % _minute) / _second);
  
              scope.days = days;
              scope.hours = hours;
              scope.minutes = minutes;
              scope.seconds = seconds;
          }
  
          $interval(showRemaining, 1000;)
      }
  }
  
  // create factory function to handle DI
  function factory() {
      "ngInject";
  
      return new Clock();
  }
  
  export default factory;
  </code></pre>
  
  <p>I've bean searching the cause of this issue and everywhere i reach info that the interval function must be passed as a normal one without parameters or any other addons. But still i have the same error, which is:</p>
  
  <p><code>TypeError: $interval is not a function</code></p>
  
  <p>Can anybody help?</p>