我需要创建一个泛型helper方法,它
- 我可以接受任何对象的数组,但至少它应该有
id
- 返回新对象数组,其中每个对象都具有
isActive
属性
这是我代码
export const useActionLinks = <T,>(
data: T & { id: string }[]
) => {
let active = '';
function mapper(d: T) {
return {
...d,
isActive: d.id === active, // Error id does not exist on type T
};
}
const itemsData = data.map(mapper); // Error
console.log(itemsData);
};
但是ts在两个点上抱怨,一个是在函数Map器上,第二个是在data.map调用上。
1条答案
按热度按时间g6ll5ycj1#
它可以在对类型进行一些更改的情况下工作。
第一个修改是在第一行。我修改了泛型,用
id
扩展了基对象。这将修复两个错误。你不需要显式地提到返回类型,因为它被自动推断为(T & { isActive: boolean; })[]
。