angular - 如何在 Angular 8 中为对象和对象数组创建接口并键入脚本?
问题描述
我正在尝试为对象、对象和对象数组创建一个接口。
示例界面
export interface ErateColumn {
categories:{
[key:string]:column[]
}
}
interface column {
label:string
value:string
}
像这样的示例 API 响应
{
"categories": {
"Basic Information": [
{ label: "Applicant Type", value: "ApplicantType" },
{ label: "Organization Name", value: "OrganizationName" },
],
"FRN Lineitem": [
{ label: "Monthly_Cost", value: "Monthly_Cost" },
],
"FRN status": [
{ label: "Purpose Type", value: "PurposeType" },
]
}
}
解决方案
您在this._erateColumn.next(columnList)
方法中提供的是columnList
. 并且不知何故columnList
似乎是接口 ErateColumn 的单个对象,而您的 BehaviorSubject 具有 ErateColumn 类型数组。将其更改为 ErateColumn 或在this._erateColumn.next(columnList)
方法中提供数组以使您的代码正常工作。
编辑
根据您的新屏幕截图,它说categories
缺少属性,因此要么像这样将其设为可选
export interface ErateColumn {
categories?:{
[key:string]:column[]
}
}
interface column {
label:string
value:string
}
或提供类别。
推荐阅读
- python - 如何使用 pyfirmata、python 和 Arduino 同时移动两个舵机
- javascript - 在 Node.js (PBKDF2WithHmacSHA1) 中重写 Java AES 256 GCM 加密
- java - 尝试访问 XSSFShape 的父级导致 NullPointerException
- machine-learning - 如何在成本函数中包含参数向量之间的相关性?
- javascript - Slick 不允许多张幻灯片
- javascript - 我不知道这个简单的 javascript 代码有什么问题,我一遍又一遍地检查了这个但不起作用
- vue.js - 如何在子组件中监听父组件的数据变化
- c# - 用于最佳面额的递归硬币更改算法
- java - @JsonFormat的注解格式问题
- java - 按第二个参数排序并按顺序迭代