gpt4 book ai didi

arrays - 有没有办法在 TypeScript 中将多种类型的数据放入数组中?

转载 作者:行者123 更新时间:2023-12-05 00:45:19 25 4
gpt4 key购买 nike

这是我要问的一个例子。
假设我们有两个接口(interface),CatsDogs .如何制作一个可以同时容纳 Cats 的数组和 Dogs ?

interface Cats {
name: string;
age: number;
}

interface Dog {
owner: string;
}

const cat1: Cats = {
name: "Jimmy",
age: 5,
}

const dog1: Dogs = {
owner: "Bobby",
}

// The line below doesn't work how I think it would work
const animalsList: Array<Cats> | Array<Dogs> = [cat1, dog1];

变量animalsList应该可以同时拥有CatsDogs在其中,但我收到类似
的错误"类型 Dogs 不能分配给类型 Array<Cats>"

最佳答案

如果我正确阅读了这个问题,您希望能够制作一个可以容纳 Cats 和 Dogs 的数组。目前的方式是Array<Cats> | Array<Dogs>意味着您可以拥有 a) 只能容纳 Cats 的数组,或 b) 只能容纳 Dogs 的数组。

要解决这个问题,您需要一个可以同时容纳两者的数组。方法如下:

public animalsList: Array<Cats | Dogs>;

管道的新位置 (|) 表明这个 Array 是一个可以同时容纳 Cats 和 Dogs 的数组。

@cherryblossom 提到的另一个选项,这是:

public animalsList: (Cats | Dogs)[];

类似的方法

关于arrays - 有没有办法在 TypeScript 中将多种类型的数据放入数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64191392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com