嗨,我是新的 typescript ,请如何能修复这个错误,说
类型“never[]”中缺少属性“data”,但类型“{ data:{产品:[]; };}'。
下面是代码:
let medias :[] = [];
let res :{
data: {
products: []
},
} =[];
try {
res = await axios.get('https://dummyjson.com/products?limit=10&skip=10');
medias = res.data.products;
} catch (e) {
medias = [];
}
1条答案
按热度按时间qhhrdooz1#
至少存在两个问题:
1.您让TypeScript推断
res
的类型,但只使用[]
作为products
。由于TypeScript不知道元素将是什么,因此它推断never[]
。此问题同时适用于res
的products
和medias
。1.您已经说过
res
类型是一个具有data
属性的对象,但是您试图仅使用[]
来初始化它。相反,使用非推断类型,并明确表示数组中的类型。您也可以在
axios.get
中使用泛型类型参数(因为它是一个泛型方法)来表示您期望data
是什么。例如,if您期望的是字符串数组:如果您期望的是其他类型的数组,只需使用它来代替上面的
string
。