RouterStateSnapshot represents the router state associated with a navigation, including the navigation URL. Angular supplies it to route guards alongside ActivatedRouteSnapshot. section 26.2.2
A guard can inspect the current route snapshot while deciding whether navigation should proceed. The snapshot is distinct from input properties, which cannot receive routing parameters in guards. section 26.2.2
Using the snapshot in a route guard
A TermsGuard receives ActivatedRouteSnapshot and RouterStateSnapshot in canActivate. It checks route.params["mode"] to protect create navigation, then returns true immediately or waits for a Promise<boolean> representing the user's response. section 26.2.2
