我有如下数据:
let equipment:Equipment = {
"1": {
"name": "abc",
"data": 123
},
"2": {
"name": "def",
"data": 234
},
"3": {
"name": "ghi",
"data": 345
},
...
}
这很容易放入数组中,但是我的设备ID以1开头,我不想处理排除[0](将为空)元素的逻辑。
鉴于此,我想出了以下TypeScript声明文件。
interface Equipment
{
[ k: number ]: EquipmentBase;
}
interface EquipmentBase
{
name: string
data: number
}
此外,当我将这个设备对象与其他对象一起返回时,我需要将其放在需要另一个接口声明的JSON对象中。
interface EquipmentObj
{
equipment: Equipment
}
/* returns {equipment:
{
"1": {
"name": "abc",
"data": 123
},
"2": {
"name": "def",
"data": 234
},
"3": {
"name": "ghi",
"data": 345
},
...
}
}
*/
这就像在声明一个持有数据的对象的声明(Equipment,EquipmentObj)过多。是否有其他/更好的方式来减少我正在使用的声明的数量?
答案 0 :(得分:0)
好吧,您可以做到这一点:
interface EquipmentObj
{
equipment: {
[k: number]: {
name: string
data: number
}
}
}
但是,您再也不能将任何内容声明为内部类型之一。
因此,如果您需要以Equipment
或EquipmentBase
的形式键入变量,参数或返回类型,则无法将其折叠。