When to use Interface and Model in TypeScript / Angular

1. 인터페이스

인터페이스 생성 예시

interface User {
 id: number;
 username: string;
}
// inheritance
interface UserDetails extends User {
 birthdate: Date;
 biography?: string;  // use the '?' annotation to mark this property as optionnal
}

HttpClient에서 사용 예시

getUsers() :Observable<User[]> {
 return this.http.get<User[]>(url); // no need for '.map((res: Response) => res.json())' 
}

인터페이스 모델을 서버로 보내는 예시

public Post_signUp(name:string, id:string, password:string):Observable<number>{
    let req_signup:Request_SignUp = {
      name : name,
      id : id,
      password : password
    };
    return this.httpClient.post<number>('<http://localhost:8087/api/back/user/insertUser>',req_signup);
  }

인터페이스를 사용할 때 :