首页 > 解决方案 > TypeScript React 项目中 JSON 数据的列子集

问题描述

我正在开发一个打字稿项目,其中我得到以下形式的数据:

const data1 =  { id: 0, rac: 43, tcreated: "12-04-21", tupdated: "12-09-22", Custname: "A" }

现在我想动态过滤列以进行进一步处理,

const fields = ["id", "tcreated", "Custname"]; 

我发现普通Javascript的解决方案为

const subset = fields.reduce((a, e) => ((a[e] = data1[e]), a), {});

但是这在我的 typescript React 项目中不起作用。我尝试了这里提到的各种其他方法,但由于 TS7053 类型不匹配,似乎没有一种方法有效。有任何想法吗?

标签: jsonreactjstypescript

解决方案


您必须在interface下面定义一个类似的,

 interface DataConfig {
    [propName: string]: string | number;
  }

  const data1: DataConfig = {
    id: 0,
    rac: 43,
    tcreated: "12-04-21",
    tupdated: "12-09-22",
    Custname: "A"
  };

并在迭代中提及元素类型,

 const subset = fields.reduce(
    (a: DataConfig, e) => ((a[e] = data1[e]), a),
    {}
  );

推荐阅读