2016-10-24 3 views
0

Ich erhalte Typoskript-Fehler 'Eigenschaft existiert nicht auf Objekt' von meinen Typoskript-Dateien. Ich habe ein paar Posts dazu gelesen, aber ich bin mir immer noch nicht sicher, wie ich die Arbeit implementieren soll.Typescript-Compiler-Fehlereigenschaft existiert nicht für Objekt

Ich habe ein JSON-Objekt hat zwei Eigenschaften, ich entpacke es, damit ich auf beide Werte direkt zugreifen kann, was gut funktioniert, es ist nur eine Kompilierzeit, die ich den Fehler erhalte.

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

meine private Methode ist, wo die Probleme durchkommen.

Ich habe versucht, eine Schnittstelle wie die unten zu exportieren, aber ich bekomme einen Konsolenfehler '? Parameter nicht ‚gefunden

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

Jede Hilfe sehr geschätzt wird. Ich benutze Typoskript 1.8.

Jimi.

Antwort

2

Ihr Problem scheint mit dem Argument Typ zu sein. Geben Sie das nicht als Object ein. Obwohl ich bin nicht sicher, was das Problem mit Ihrer Schnittstelle ist (kann es sein, dass Sie fehlende Semikolons sind?)

Dies funktioniert für mich:

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); 
     } 
    } 
} 

Wenn Sie etwas wie Object die einzigen Attribute eingeben, die der Compiler weiß über diejenigen, die auf Object existieren. Eine Schnittstelle zu bilden ist definitiv die korrekte Weise, über diese zu gehen (so gut auf Ihnen für das!), Aber in der Zukunft, die "Workaround", die Sie wahrscheinlich suchen, ist Typ any.

+1

danke @ Drewwyatt, das hat wie ein Leckerbissen funktioniert. – Jimi

Verwandte Themen