typescript/angularのオブジェクトと型に関する奇妙な(私には)問題に直面しています。
リモートAPIから受け取ったオブジェクトを記述するクラスがあります。
export class Point {
lat:number;
lng:number;
name:string;
public doSomething() {
console.log("doSomething called");
}
}
私は
HttpClient
を使用していますAPIからオブジェクトを取得するには:
constructor(private http:HttpClient) {}
getPointsAsync(callback: (points: Point[]) => {}) {
this.http.get<Point[]>(`${environment.apiUrl}/api/points`)
.subscribe(
(result: Point[]) => {
//do something with data
callback(result);
},
error => { //some error handling
}
);
}
私の問題は、メソッド
doSomething
を呼び出そうとすると配列から私のポイントの1つに
var firstPoint = points[0];
firstPoint.doSomething()
コンソールに奇妙なエラーが表示されます:
ERROR TypeError: firstPoint.doSomething is not a function
TypescriptとAngularを非常に長い間使用していないため、コードに何か問題があると考えていますが、問題の答えが見つかりませんでした。アドバイスをお願いします。
回答 1 件
関連記事
- 角度のTypeScriptエラー:宣言された型が「void」でも「any」でもない関数は、値を返す必要があります
- TypeScript:コンストラクターの署名から関数の引数を推測する
- Typescriptの他の関数の引数から関数の引数のタイプを推測する
- Angular、HttpClient;プロパティ「shareReplay」はタイプ「Observable」に存在しません
- Typescriptの関数パラメータの破棄
- Typescriptでの整数配列のフィルタリング:Angular 2
- TypeScript:多くの関数で再利用可能なスタンドアロン関数型
- Angular ngForがDOMに要素を作成するときに、関数を実行するにはどうすればよいですか?
- Animejsのコールバック関数内のAngularコンポーネントのプロパティ/関数にアクセスします
- 角度タイプスクリプトのパラメータのIDを自動インクリメントするにはどうすればよいですか?
問題は、実際に
Point
のインスタンスを取得しないことです Webサービスから。メソッドではなくクラスフィールドを持つJSONオブジェクトを取得します。クラスをインスタンス化してObject.assign
を使用できます オブジェクトリテラルから各Point
に値を割り当てる インスタンス