2016-10-24 3 views
0

私のタイスクリプトファイルから 'オブジェクトにプロパティが存在しません。私はこれに関するいくつかの記事を読んだが、私はまだ回避策を実装する方法がわからない。オブジェクトにTypescriptコンパイラエラープロパティが存在しません

私はJSONオブジェクトに2つのプロパティがありますので、両方の値に直接アクセスできるように展開します。正常に動作します。コンパイル時にエラーが発生します。

payload: { 
    value1: '', 
    value2: '' 
} 

私のプライベートメソッドは問題がどこから来ているかです。

private update(respo : Object) : void { 

    if (respo.hasOwnProperty('value1') || respo.hasOwnProperty('value2')) { 
     (<FormControl>this.controlGroup.controls['ctrlone']).setValue(respo.value1); 

     (<FormControl>this.controlGroup.controls['ctrltwo']).setValue(respo.value2); 
    } 
} 

以下のようなインターフェイスをエクスポートしようとしましたが、コンソールエラーが表示されます。パラメータが見つかりません '

interface responseObject { 
    value1?: string 
    value2?: string 
} 

何か助けていただければ幸いです。私はtypescript 1.8を使用しています。

ジミ。

答えて

2

問題は型引数にあるようです。それにはObjectと入力しないでください。私は

(?それはあなたがセミコロンが欠落していることであるかもしれない)問題は、あなたのインターフェイスであるかわからないけどこれが私の作品:

interface responseObject { 
    value1?: string; 
    value2?: string; 
} 

class SomeClass { 
    private update(respo : responseObject) : void { 
     if (respo.hasOwnProperty('value1') || respo.hasOwnProperty('value2')) { 
      (<FormControl>this.controlGroup.controls['ctrlone']).setValue(respo.value1); 

      (<FormControl>this.controlGroup.controls['ctrltwo']).setValue(respo.value2); 
     } 
    } 
} 

あなたがそのObjectのみ属性として何かを入力しますコンパイラは、Objectに存在するものを知っています。インターフェイスを作ることは間違いなく正しいことです(それについてはあなたのために良いです!)しかし、将来的にはあなたが探している "回避策"はタイプanyです。

+1

ありがとう@Drewwyatt、それは治療のように働いた。 – Jimi

関連する問題