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
相关产品推荐
相关产品推荐

