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

TypeScript定义接口对象数组时报属性不存在错误怎么解决?

TypeScript 数组类型属性不存在报错修复方案

错误原因

你声明的myData是myInterface[]数组类型,而非单个myInterface对象类型,数组本身未定义lastUpdated属性,因此触发类型校验报错

修复方案

根据你的实际业务需求二选一即可:

方案1:给数组内每一项都设置更新时间

遍历返回的数组,给每个元素单独赋值lastUpdated属性:

then((data: myInterface[]) => {
  this.myData = data.map(item => ({
    ...item,
    lastUpdated: new Date()
  }))
})

方案2:给整个数据集设置统一的更新时间

如果lastUpdated是整个数组的公共属性,你需要调整原有接口和变量声明:

  1. 调整接口定义:
// 单条数据的接口
export interface MyItem {
  picture: string
}
// 包含数组和全局更新时间的外层接口
export interface MyDataSet {
  list: MyItem[],
  lastUpdated: Date
}
  1. 组件内调整变量声明和赋值逻辑:
import { MyItem, MyDataSet } from "./interfaces/myInterface"
// 初始值对应调整
myData: MyDataSet = {
  list: [],
  lastUpdated: new Date()
};

// 接口请求后赋值
then((data: MyItem[]) => {
  this.myData.list = data;
  this.myData.lastUpdated = new Date();
})

小提示:TypeScript 社区通用规范中,接口名建议使用大驼峰写法,便于和普通变量、函数做区分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 08:54:03