title: Angular2 Property does not exist on type
body: <p>I am trying to get my connected user model after login process,</p>
  
  <p>First the user is redirecting to "/login" URL after CanActivate guard checked the local storage with the user JSON object and found that it is null</p>
  
  <p>Then the user is logging in and redirect back to root URL "/",
  on the connecting process I'm using AuthService that save the user object that returned from the server in a user model</p>
  
  <p>but i'm getting this error:</p>
  
  <p><strong>src/app/_guards/auth.guard.ts (12,48): Property 'token' does not exist on type 'User'.)</strong></p>
  
  <p>my user model looks like this:</p>
  
  <pre><code>export class User {
  constructor(
      public email:string,
      public passowrd:string,
      public firstname:string,
      public lastname:string,
      public token:string
  ){}
  }
  </code></pre>
  
  <p>and my AuthService looks like this:</p>
  
  <pre><code>import { Injectable } from '@angular/core';
  import { User } from "../_models/user";
  import { Observable } from 'rxjs/Rx';
  import { Http, Headers, Response } from '@angular/http';
  import { Router } from "@angular/router";
  import 'rxjs/add/operator/map';
  
  @Injectable()
  export class AuthenticationService {
    private user: User;
  
    constructor(private http: Http,private router:Router) {
      // set token if saved in local storage
      var currentUser = JSON.parse(localStorage.getItem('currentUser'));
      this.user = currentUser;
    }
  
    getUser(){
      return this.user;
    }
  
      login(email:string,password:string): Observable&lt;boolean&gt; {
          const body = JSON.stringify({ email: email, password: password });
          const headers = new Headers({
           'Content-Type' : 'application/json'
          });
  
          return this.http.get("https://test.firebaseio.com/users.json",{headers:headers})
              .map(
              (response: Response) =&gt; {
  
                  // login successful if there's a token in the response
                  let token = response.json() &amp;&amp; response.json().token;
                  if(token){
                      // set user object
                      this.user = response.json();
  
                      // store username and jwt token in local storage to keep user logged in between page refreshes
                      localStorage.setItem('currentUser', JSON.stringify(this.user));
  
              // return true to indicate successful login
                      return true;
                  } else {
                      // return false to indicate failed login
                      return false;
                  }
                  //return response.json();
              }
            );
      }
  
      logout(): void {
      // clear token remove user from local storage to log user out
      this.user = null;
      localStorage.removeItem('currentUser');
      this.router.navigate(['/']);
    }
  }
  </code></pre>
  
  <p>and this is my guard:</p>
  
  <pre><code>import { Injectable } from '@angular/core';
  import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
  import { Observable } from 'rxjs/Rx';
  import { AuthenticationService } from '../_services/index';
  
  @Injectable()
  export class AuthGuard implements CanActivate {
  
      constructor(private router: Router,private authService:AuthenticationService) { }
  
      canActivate(route:ActivatedRouteSnapshot, state:RouterStateSnapshot): boolean {
          if (this.authService.getUser().token) {
              // logged in so return true
              return true;
          }
  
          this.router.navigate(['/login']);
          return false;
      }
  }
  </code></pre>