gpt4 book ai didi

typescript - 的元素?我能做到吗?

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

这是我想要完成的:

const names = ["foo", "bar", "baz"];
type NameType = elementof names; // This is not valid TypeScript

行为将与此相同:

type NameType = "foo" | "bar" | "baz";

解决方案需要完成一些事情。

  • 提供有序的可枚举字符串序列。
  • 将名称公开为字符串文字类型的可寻址联合。
  • 无需冗余源代码编辑即可维护字符串。

TypeScript 可以做到这一点吗?

注意:这与 Convert string[] literal to string type literal 不同,因为该问题不需要特定排序的字符串序列。联合类型不会产生任何在运行时获取订单信息的方法。

最佳答案

您可以使用类型查询获取项目的类型:

type NameType = typeof names[number];

问题是names的类型是string[],所以上面的代码只是生成了string

您可以使用辅助函数推断 const 的字符串文字类型。

function array<T extends string>(p: T[]) : T[] {
return p
}

const names = array(["foo", "bar", "baz"]);
type NameType = typeof names[number]; // The same as "foo" | "bar" | "baz"

关于typescript - 的元素?我能做到吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50704766/

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