一、源码问题
|
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' }) |