如何将打字稿类型的字符串转换为字符串数组?

新手上路,请多包涵

我有这种类型:

 type myCustomType = "aaa" | "bbb" | "ccc";

我需要将它转换成这样的数组:

 ["aaa", "bbb", "ccc"]

我怎样才能在打字稿中做到这一点?

原文由 Diemauerdk 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 232
2 个回答

发出的代码中不存在类型 - 您不能从 类型 转到 _数组_。

但在某些情况下,你可以反过来。如果数组不是动态的(或者它的值可以在初始化时完全由类型检查器确定),则可以声明数组 as const (这样数组的类型就是 ["aaa", "bbb", "ccc"] 而不是 string[] ),然后通过从 arr[number] 映射它的值来创建一个类型:

 const arr = ["aaa", "bbb", "ccc"] as const;
type myCustomType = typeof arr[number];

这是 操场上的 一个例子。

原文由 CertainPerformance 发布,翻译遵循 CC BY-SA 4.0 许可协议

例如:

   const themeMode = ['light', 'dark'] as const;
  type MainTheme = typeof themeMode[number];
  const values = [...themeMode];

  // iterate on themeMode as const assertion
  values.map((theme) => console.log(theme));

原文由 Mohammad Fallah 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题