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

如何在TypeScript中向数组添加元素时提供类型定义?

解决TypeScript数组遍历避免使用any类型的问题

核心方案

给answers数组指定你已定义的answerProps接口类型,让TypeScript自动推断遍历项的类型,同时优化遍历方法的选择:

修改后的代码示例

interface answerProps {
  state: string;
  answer: string;
}

// 给answers指定明确的类型
const answers: answerProps[] = []; // 替换为你的实际数据源
const results: string[] = [];

// 用forEach替代map(语义更准确,map用于生成新数组,此处仅需遍历执行操作)
if (!isEmpty(answers)) {
  answers.forEach((item) => {
    results.push(`${item.state} : ${item.answer}`);
  });
}

关键说明

  • 当answers被指定为answerProps[]类型后,TypeScript会自动识别遍历中的item类型为answerProps,无需再用any兜底。
  • 原代码中使用map不合适:map的设计初衷是通过遍历生成新数组,而此处只是执行push操作,没有利用map返回的数组,改用forEach更符合代码语义,也避免不必要的数组创建。

如果answers是来自函数参数或外部传入,同样需要在传入时指定类型:

function processAnswers(answers: answerProps[]) {
  const results: string[] = [];
  if (!isEmpty(answers)) {
    answers.forEach(item => {
      results.push(`${item.state} : ${item.answer}`);
    });
  }
  return results;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 03:22:04