一、源码问题
1 2 3 4 5 6 7 |
let data = { list: [] } data.list.push({ name: 'Lucy' }) |
二、分析解决
声明data
对象list
元素时,默认是一个空数组,编译器认为这些数组总是没有真正的元素(例如Array<never>
)。当试图将数据推到这样一个阵列上时,它抱怨数据不是never
。因此我们需要使用某种方式来注释或断言累加器来持有某个数组,如下所示:
1 2 3 4 5 6 7 8 9 10 |
interface List { name: string } let data = { list: [] as Array<List> } data.list.push({ name: 'Lucy' }) |