Angular7で私のシステムにhttp接続をしています。ただし、モジュールでエラーが発生しています。このメッセージは、getリクエストを作成したときに表示されます。
Type 'Promise<any>' is missing the following properties from type 'User': id, user, email
モジュール:
export class User {
id: number
user: string
email: string
}
リクエスト:
users: User;
this.userService.getUsers().subscribe(
response => {
if (!response) {
console.log(Error)
} else {
this.users = response
}
})
HTTP Get:
getUsers() {
return this.service.get(this.endpoint)
.map((response) => {
return response;
});
}
サービス:
standardHeaders() {
const headers = new HttpHeaders();
headers.append('Content-Type', 'application/json');
if (this.authToken) {
headers.append('X-Authorization', this.authToken);
}
return { headers: headers };
}
get(path: string) {
return this.http.get(this.url + path, this.standardHeaders()).map((response: Response) => {
return response.json();
});
}
パス=エンドポイント
私は問題を見つけました、それはリクエストを変更することだけでした:
users: User;
this.userService.getUsers().subscribe(
response => {
if (!response) {
console.log(Error)
} else {
this.users = response
}
})
ために:
this.userService.getUsers().subscribe(
response => {
if (!response) {
console.log(Error)
} else {
console.log(response)
let users : User[] = response
}
})
あなたのコードから区別するのは難しいです、私が通常そのようなリクエストを行う方法は、一般的なgetを使用したHttpClientです
_public get(id: number): Observable<className> {
return this._http.get<className>(`${this._baseUrl}/${id}`);
}
_
そして、このように使用します
_this.service.get(id).subscribe(x => this.myClass = x);
_
しかし、HttpClientではなくサービスを使用していて、戻り値を指定していません...
あなたのgetUsers()
関数は1またはmanuユーザーを返しますか?リストを返す場合は、リクエスト変数を_users: User[];
_に変更するだけです。