title: Why do we always have to inject both ActivatedRouteSnapshot and RouterStateSnapshot in AuthGuard
body: <p>I am newbie in Angular 2. On Angular.io Routing tutorial, I see that ActivatedRouteSnapShot and RouterStateSnapshot always be declared(inject) in AuthGuard function: canActivate, canActivateChild, resolve ....
  However, usually just 1 be used. You can see below: </p>
  
  <pre><code>canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
      let url: string = state.url;
  
      return this.checkLogin(url);
    }
  resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise&lt;Crisis&gt; {
      let id = route.params['id'];
  
      return this.cs.getCrisis(id).then(crisis =&gt; {
        if (crisis) {
          return crisis;
        } else { // id not found
          this.router.navigate(['/crisis-center']);
          return null;
        }
      });
    }
  </code></pre>
  
  <p>So why do always need to inject both?</p>