gpt4 book ai didi

typescript - 具有索引类型签名的 typeof 元组代表什么?

转载 作者:行者123 更新时间:2023-12-03 08:54:02 25 4
gpt4 key购买 nike

我已经跟踪了 Typescript 代码,但我无法真正理解最后一行代码

const tuple = <T extends string[]>(...args: T) => args;
const ButtonTypes = tuple('default', 'primary', 'ghost', 'dashed', 'danger', 'link');
export type ButtonType = (typeof ButtonTypes)[number];

这是我要说得更明确的一句话。

(typeof ButtonTypes)[number]

更新:

这直接来自 Ways to get string literal type of array values without enum overhead

最佳答案

tuple 是一个接受参数并返回所有参数的数组的函数。例如,tuple('foo', 'bar') 将计算为 ['foo', 'bar']

const ButtonTypes = tuple('default', 'primary', 'ghost', 'dashed', 'danger', 'link');

您将获得所有这些字符串的数组:

const ButtonTypes = ['default', 'primary', 'ghost', 'dashed', 'danger', 'link'];

然后,使用 (typeof foo)[number],您将检索变量 foo 上的所有属性,这些属性可以通过数字索引进行访问。因此,这就像执行以下操作:

export type ButtonType = "default" | "primary" | "ghost" | "dashed" | "danger" | "link";

只是重复次数较少。

关于typescript - 具有索引类型签名的 typeof 元组代表什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56897267/

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