私は現時点で角度2を使用しています。 そして、私はいくつかのデータオブジェクト(json)とモデル(javascriptクラス)の比較方法
data: MyModel[] = [
{
id: 1,
name: 'Name',
secondName: 'SecondName'
}
の配列はまた、mymodelというインタフェースですしている:
interface MyModel {
id: number,
name: string,
secondName: string
は、私はバックエンド(オブジェクトのJSON)からデータを受信したこと、のは、想像してみましょう:
{
id: 2,
FIRSTname: 'FName',
secondName: 'SecondName'
}
オブジェクトのキーが自分のインターフェースと同じであることをどのように検証できますか?
たとえば、フィールド「FIRSTname」が正しくない場合は、例外などをスローする必要があります。 :それは機能の礼儀を比較
Array.prototype.compare = function(testArr) {
if (this.length != testArr.length) return false;
for (var i = 0; i < testArr.length; i++) {
if (this[i].compare) { //To test values in nested arrays
if (!this[i].compare(testArr[i])) return false;
}
else if (this[i] !== testArr[i]) return false;
}
return true;
}
Object.keys(respDataObj).compare(Object.keys(obj))
をrespDataObj私はあなたがモデルのインターフェイスを実装objを変数を定義し、そのすべてのプロパティを初期化して、バックエンドのデータをOBJのキーを比較することができると言う場合、名前をすることができます
オブジェクトキーを反復して手動で比較する独自の関数を作成する必要があります。 AFAIK、タイプスクリプトに組み込まれているものを実行する方法がありません –
if(JSON.stringify(data)=== JSON.stringify(dataFromServer))を使ってみましたか? – Tomer