首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >映射内部的接口映射

映射内部的接口映射
EN

Stack Overflow用户
提问于 2022-07-07 12:32:30
回答 1查看 110关注 0票数 0

我试图用数组在另一张地图中映射一个数组。这些是接口:

代码语言:javascript
运行
复制
interface Props {
  columns: Array<{field: string, headerName: string, width: number}>;
  rows: Array<{id: string, order: number, name: string, timeRequired: number}>;
  handleSortOrder: (id: string, order: number, type: string) => void;
  path: string;
  updateSortOrder: MouseEventHandler<HTMLButtonElement>; 
  loading: boolean;
}

所使用的类型是列和行。这是映射的一部分:

代码语言:javascript
运行
复制
{
  rows.map((r) => (
    <tr className='micro-course-resource-table-row'>
      {columns.map((c) => (
        <td className='micro-course-td'>
          <div
            role='button'
            tabIndex={-1}
            onKeyDown={() => navigate(`/${path}/${r.id}`)}
            onClick={() => navigate(`/${path}/${r.id}`)}
          >
            {r[c.field]}
          </div>
        </td>
      ))}
    </tr>
  ));
}

我所得到的错误在div:{rc.field}中,其中声明“元素隐式具有'any‘类型,因为类型'string’的表达式不能用于索引类型{ id: string;order: number;name: string;timeRequired: number;}‘”。

有人知道答案吗?我尝试过实现"...as keyof MyClass“,但是错误并没有消失。我遗漏了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2022-07-07 12:48:40

我认为这是因为您使用的是noImplicitAny: true,而目前TypeScript并不知道column.field实际上是行中的一个有效属性。尝试像下面这样的r:any,或者通过在tsconfig.json文件中设置"noImplicitAny": false来禁用规则

代码语言:javascript
运行
复制
rows.map((r:any) => ((

也许这个答案就是你想要的?https://stackoverflow.com/a/43070857/1471485

编辑:做@jcalz在你问题的评论中提到的事情可能是可行的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72897884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档