我打算设置一个数组,数组内包含一个或多个对象
当我这么写时,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 }[ ]