JavaScript + MEAN 堆栈 : How to properly find "_id" field (not "id") in array?

标签 javascript arrays angular mongodb mean

我有一个带有 MongoDB 的 Angular 应用程序,我可以从其中抓取数据到名为 books 的数组中,该数组有一个条目,如下所示:

{_id: "5b768f4519d48c34e466411f", name: "test", reservation: null, reserved: false, __v: 0}

带有 TypeScript 接口(interface)

interface Books { 
    id?: Number; 
    name: String; 
    reservation: Number; 
    reserved: Boolean; 
}

我试图根据“_id”从此数组条目中查找保留值。当按下运行以下代码的按钮时,=== 之后的另一个不带下划线的“id”变量将被注入(inject):

findBook(id) {
      const result = this.books.find( sfid => sfid._id === id);
      console.log('reservation for this book is: ' + result.reserved);
        // todo: do something if book is reserved
    }

现在效果很好,我得到了结果,但在 Angular 调试器中我收到以下错误:

ERROR in src/app/components/index/index.component.ts(24,56): error TS2339: Property '_id' does not exist on type 'Books'.

这就是说我应该如何使用“_id”值名称正确搜索?将“sfid._id”替换为“sfid.id”不起作用。

最佳答案

接受的答案只是一种解决方法,可以让 Typescript 停止提示 _id 未在界面中实现。真正的解决方法是实现它:

interface Book {
   _id : string; // <-- Add this
   name: string;
   reserved : boolean;
   reservation : any;
}

关于JavaScript + MEAN 堆栈 : How to properly find "_id" field (not "id") in array?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51944655/

相关文章:

angular - 在输入时将参数传递给 Angular 4 指令

javascript - 通过AngularJS将json格式转换为另一种json格式

angular - 如何向守卫传递参数?

css - 在 angular2 组件样式表中覆盖来自 Bootstrap 的样式

javascript - 如何使用 $http.get 在 Controller 中返回 bool 值

javascript - React 中 OTP 输入字段的第一个输入自动对焦

c - c中的指针和数组有什么区别?

javascript - 按列值 HTML 交替颜色?

javascript - 单击事件在 IE/Firefox 中触发,但 Chrome 正在放弃事件分配

javascript - 如何等待在 react.js 中呈现 View 直到 $.get() 完成?