You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript中如何向JSON数组添加对象?新手技术求助

解决TypeScript数组添加对象的类型匹配问题

嘿,我来帮你梳理下问题所在,其实核心是类型声明不匹配导致的错误,一步步来修正:

1. 先定义正确的ContactModel类型

首先你需要明确要存储的对象结构,用interface来定义你的ContactModel类型,这样TypeScript就能帮你做严格的类型检查:

// 定义ContactModel接口,统一属性名的大小写(比如你写的Mobile改成mobile,避免大小写不一致导致的问题)
interface ContactModel {
  fname: string;
  lname: string;
  id: string;
  mobile: string;
}

2. 修正数组的类型声明

你之前把数组声明成了boolean[](布尔值数组),但实际要存的是ContactModel对象,所以数组类型应该改成ContactModel[]:

// 现在这个数组专门用来存ContactModel类型的对象
let jsonArrayObject: ContactModel[] = [];

3. 正确向数组添加对象

你之前的代码里给数组赋值时多包了一层contactModel属性,如果你的数组就是要直接存ContactModel对象,直接把对象放进去就行:

// 初始化数组或者添加第一个元素
jsonArrayObject = [
  {
    fname: "vboyini",
    lname: "simha",
    id: "1",
    mobile: "99768999"
  }
];

// 或者用push方法添加新的对象
const modelData: ContactModel = {
  fname: "vboyini2",
  lname: "xxx",
  id: "2",
  mobile: "123456789"
};
jsonArrayObject.push(modelData);

额外注意点

  • 不要用String(大写S)作为类型,TypeScript里应该用小写的string表示字符串类型;
  • 保持属性名大小写一致(比如你原来的Mobile改成mobile,避免后续访问属性时出现找不到属性的错误);
  • 如果你的业务场景确实需要数组里的元素是包含contactModel属性的对象,那数组类型要改成{ contactModel: ContactModel }[],不过看你的描述,直接存ContactModel对象更符合需求。

这样调整后,类型就完全匹配了,也能顺利向数组添加对象啦!

内容的提问来源于stack exchange,提问作者Venkat B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:06:42