javascript - Typescript find 无法识别返回的类型

标签 javascript typescript

我只是在数组中查找一个对象,但 typescript 认为返回类型未定义。

 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: Type 'HotelResultsModel | undefined' is not assignable to type 'HotelResultsModel'.

当我将鼠标悬停在变量上时, typescript 认为 serverResponse.hotels 数组中的对象属于“HotelResultsModel”类型。我什至可以将它们记录到控制台。

Type 'undefined' is not assignable to type 'HotelResultsModel'.

我有办法告诉 Typescript 忽略错误或强制转换查找结果吗?

最佳答案

因为没有找到b。试试这个:

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

关于javascript - Typescript find 无法识别返回的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46239951/

相关文章:

typescript - angular2/core 和 @angular/core 的区别

angular - 接口(interface)只能扩展一个类或另一个接口(interface)

javascript - 如何更改日期选择器中的 maxDate?

javascript - 如何自动删除 NodeJs 中超过一周的所有记录/行?

Angular 4在选择更改时获取属性数据值

reactjs - 错误 : Final loader (./node_modules/awesome-typescript-loader/dist/entry.js)没有返回缓冲区或字符串

typescript - 在 vue 组件的模板 html 中启用智能感知需要什么?

javascript - javaScript 中本地定义函数的作用域

javascript - AJAX post 请求在浏览器中工作,而不是在 Phonegap 应用程序上工作

javascript - 连续的鼠标输入功能不起作用