Typescript的新手,被困在一个基本问题上。我想将对象推送到这样的数组中:
type SomeArray = [
{
id: string;
}
];
const someArray: SomeArray = [];
第一个问题是它不允许我用空数组初始化。我真的需要工会吗?即SomeArray = [...] | []
?
下一个问题是我can't push items to it:
type SomeArray = [
{
id: string;
}
] | [];
const someArray: SomeArray = [];
someArray.push({ id: 'a' })
“字符串”类型不能分配为“从不”类型。(2322)
定义接受类型对象的数组的正确方法是什么?
答案 0 :(得分:1)
您已将SomeArray定义为tuple,而不是数组。元组不仅可以指定它是一个数组,还可以指定它到底将拥有多少个元素以及每个索引的类型(不同的索引可能具有不同的类型)。因此,在您的情况下,您已指定该数组中将仅包含一个元素,这将使空数组并将其推入数组是非法的。
如果要使用包含0个或多个元素的数组,则需要在方括号之后放置方括号,如下所示:
type SomeArray = { id: string }[];