首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我搞错了,TS2339:属性'name‘在'object’类型上不存在

问我搞错了,TS2339:属性'name‘在'object’类型上不存在
EN

Stack Overflow用户
提问于 2022-07-01 11:16:36
回答 1查看 1.4K关注 0票数 0

我的课

代码语言:javascript
复制
class Sources {
  draw(data: object[]): void {
    const fragment = document.createDocumentFragment();
    const sourceItemTemp = document.querySelector("#sourceItemTemp") as HTMLTemplateElement;

    data.forEach((item) => {

      const sourceClone = sourceItemTemp.content.cloneNode(true) as HTMLInputElement;
      const sourceItemName = sourceClone.querySelector(".source__item-name");
      const sourceItem = sourceClone.querySelector(".source__item");

      if (sourceItemName && sourceItem) {
        sourceItemName.textContent = item.name;
        sourceItem.setAttribute("data-source-id", item.id);
      }

      fragment.append(sourceClone);
    });

    const doc = document.querySelector(".sources");
    if (doc) {
      doc.append(fragment);
    }
  }
}

我会犯错误:

TS2339:属性'name‘在'object’类型上不存在。TS2339:属性'id‘在'object’类型上不存在。

当我为项添加类型时

代码语言:javascript
复制
    data.forEach((item: {
      name: string,
      id: string
    })

我搞错了

TS2345: type '(item:{ name: string;id: string;}) => void‘的参数“不能分配给类型的参数”(值:对象、索引:数字、数组: object[]) => =>’。 参数'item‘和'value’的类型不兼容。 类型“{}”中缺少以下属性:{ name: string;id: string;}:name,id

在这里输入图像描述

项目在请求后有视图在这里输入图像描述

EN

回答 1

Stack Overflow用户

发布于 2022-07-01 11:34:57

在函数头中定义数据是一个对象数组。请在这里加一个合适的字体。draw(data: { id: string, name: string }[]): void { /* ... */ }

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

https://stackoverflow.com/questions/72828441

复制
相关文章

相似问题

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