2017-09-15 3 views
1

Ich suche einfach ein Objekt in einem Array, aber Typoskript denkt, dass der Rückgabetyp nicht definiert ist.TypScript-Suche erkennt den zurückgegebenen Typ nicht

let b = serverResponse.hotels.find(h => h.hotelMoniker == offer.hotelMoniker) ; 
console.log(b); 
newVacation.hotel = b //Error Here 

ERROR in [at-loader] ./ClientApp/app/services/room.service.ts:170:7 TS2322: Typ ‚HotelResultsModel | undefined 'kann nicht dem Typ' HotelResultsModel 'zugewiesen werden.

Wenn ich den Mauszeiger über die Variablen halte, denkt Typoskript, dass die Objekte im Array serverResponse.hotels vom Typ 'HotelResultsModel' sind. Ich kann sie sogar an der Konsole anmelden.

Der Typ 'undefiniert' kann nicht dem Typ 'HotelResultsModel' zugewiesen werden.

Ich habe eine Möglichkeit, Typoskript zu sagen, um den Fehler zu ignorieren oder das Suchergebnis zu werfen?

Antwort

0

Da gibt es keine b gefunden. Versuchen Sie dies:

let b = serverResponse.hotels.find(h => h.hotelMoniker == offer.hotelMoniker) ; 
newVacation.hotel = b || null; 
+0

Danke Faly, ich habe es zur Arbeit. Verwenden Sie dies: 'newVacation.hotel = b || new HotelResultsModel(); 'Das b-Objekt hatte gültige Werte, daher hat der Code den b-Wert übernommen, aber mit der neuen Objektdeklaration funktionierte es. Vielen Dank. – user2502794

Verwandte Themen