首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在typescript的接口/类型中将枚举值转换为数组?

如何在typescript的接口/类型中将枚举值转换为数组?
EN

Stack Overflow用户
提问于 2020-11-02 15:22:45
回答 1查看 253关注 0票数 1

我希望将接口/类型属性的属性类型转换为与枚举值匹配的任何元素的数组。

代码语言:javascript
运行
复制
enum X = {
"one" = 1,
"two" = 2,
"three" = 3,
// .... and so on
}

interface Y {
 prop: X[] // this array should always contains values from enum only, not necessarily all
}

(a)道具:“一”、“二”-有效

(b)道具:“一”-有效

(c) prop:"one","XYZ“-如果"XYZ”不是枚举的一部分,则无效

我不确定我应该如何转换我的属性,以便它应该只与枚举值列表匹配。

任何帮助都将非常感谢!

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-11-02 20:06:50

您可以尝试创建interface,如下所示-

代码语言:javascript
运行
复制
var myList = Object.keys(X) as Array<keyof typeof X>;

interface Y {
  prop: typeof myList;
}

然后blow是测试:

代码语言:javascript
运行
复制
const test0: Y = { prop: ['one', 'two', 'three'] }; // Valid
const test1: Y = { prop: ['one', 'two'] }; // Valid
const test2: Y = { prop: ['one'] }; //Valid
const test3: Y = { prop: ['one', 'XYZ'] }; //Error
const test4: Y = { prop: ['Two', 'zz'] }; //Error
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64641319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档