遇到 TS2741: Property ‘0‘ is missing in type ‘[]‘ but required in type [{xxx:string;yy:number}] 咋办?

我打算设置一个数组,数组内包含一个或多个对象

当我这么写时,ts报错:

  • TS2741: Property ‘0’ is missing in type ‘[]’ but required in type ‘[{ name: string; value: number; }]’.
type  X = [{
    
    name: string; value: number }]
const x: X = []

最后通过stackoverflow上查询到,恍然大悟:

  • 上面说,这是一个数组包含一个对象的情况,而不单单是一个数组.它可能具有1个元素,也可能有更多或者更少.
  • 所以翻译成白话就是应该定义X是一个怎么样的数组
  • 而我定义成了type X = [{name: string; value: number }]
  • 正确答案是 type X = {name: string; value: number }[ ]
    在这里插入图片描述

修改为type X = {name: string; value: number }[ ] 后,不再报错,恢复正常

猜你喜欢

转载自blog.csdn.net/MS6324_ZAKU/article/details/110146608
今日推荐