我的课
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’类型上不存在。
当我为项添加类型时
data.forEach((item: {
name: string,
id: string
})我搞错了
TS2345: type '(item:{ name: string;id: string;}) => void‘的参数“不能分配给类型的参数”(值:对象、索引:数字、数组: object[]) => =>’。 参数'item‘和'value’的类型不兼容。 类型“{}”中缺少以下属性:{ name: string;id: string;}:name,id
项目在请求后有视图在这里输入图像描述
发布于 2022-07-01 11:34:57
在函数头中定义数据是一个对象数组。请在这里加一个合适的字体。draw(data: { id: string, name: string }[]): void { /* ... */ }
https://stackoverflow.com/questions/72828441
复制相似问题