2017-09-21 3 views
2

Ich habe FehlerCast zur Karte Objekt

Typ 'string' ist nicht übertragbar auf den Typ '() => string'

this.selectedValue.display = headerOcr.author.profession; 

private selectedValue: IDocumentType = { 
    id: '1', 
    display:() => '', 
    label: '' 
} 

dies sind Standard initialisiert Wert für „selectedValue "

Was soll ich mit headerOcr.author.profession machen? display;() => '' sollte Const Typ haben.

+0

try() => {return ''} – valepu

+2

Sie die Zuordnung zu 'display' eine Funktion . Wenn der Anzeigetyp eine Zeichenkette ist, möchten Sie die Funktion möglicherweise sofort aufrufen, indem Sie 'display: (() => '')()' schreiben oder einfach ''display:' '' ausgeben –

Antwort

2

Typ 'string' verwenden müssen, ist nicht übertragbar auf den Typ ‚() => string '

Typoskript erwarten, dass alle Ihre Objekteigenschaften Strings sein wird, so gibt es zwei Möglichkeiten:

  1. Rückgabewert in display:() => return '',
  2. ändern IDocumentType Schnittstelle wie folgt aus:

IDocumentType { /*...*/ display:() => string /*...*/ }

2

Sie können eine Funktion nicht übergeben, wenn Sie sie als string definiert haben. Entweder ändern Sie die Definition von headerOcr oder werten den Funktionsaufruf aus, bevor Sie ihn an die Anzeige übergeben.

Die Änderung der Definition wie diese aussehen:

IDocumentType { 
    display:() => string 
} 

Damit Sie es als IDocumentType.display()