gpt4 book ai didi

typescript - 在 Typescript 中,当数组包含不同的元素类型时,如何从数组类型中获取元素类型?

转载 作者:搜寻专家 更新时间:2023-10-30 21:06:41 25 4
gpt4 key购买 nike

假设我有一组不同类型的数据:

const input = ["random", 2, {a: "foo", b: "baz"}];

Typescript 可以自动推断和提取类型,例如:

type InputTypeArray = typeof input;

这里 typescript 知道 InputTypeArray 是 (string | number | {a: string, b: string})[];

我们称 InputType 为数组元素的类型,即:

typeof InputType = string | number | {a: string, b: string};

我可以从 InputTypeArray 派生 InputType 吗?换句话说,我将如何编写一个接受输入元素之一作为参数的函数?

const input = ["random", 2, {a: "foo", b: "baz"}];

const myFunction = (element: InputType) => element;

input.map(myFunction);

如何在这里写“InputType”?有没有办法从输入中提取它?

我知道我可以通过在 map 调用中内联 myFunction 来解决问题,因为 typescript 将再次在函数中推断出正确的类型。但是有没有办法让类型永远不变?

最佳答案

您可以使用此格式获取成员类型:

type InputType = typeof input[number];

您可以阅读更多相关信息(以及其他一些很酷的技巧)here在 Steve Holgado 的博客文章中。

关于typescript - 在 Typescript 中,当数组包含不同的元素类型时,如何从数组类型中获取元素类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48703525/

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