arrays - 由数组定义的打字稿类型
问题描述
我正在使用 keyof、typeof、... 是否可以为枚举和数组提供一个“数据源”?
例如:
- 我想要一个枚举类型
- 和一个数组
但我想定义一个事实来源。目前我定义了 'limited'、'low'、'medium'、'high' 3 次,我有很多这样的“数据类”
const myArray: string[] = [
'limited',
'low',
'medium',
'high'
];
type MyStringEnumType =
'limited'
| 'low'
| 'medium'
| 'high';
enum MyEnum
{
Limited = 'limited',
Low = 'low',
Medium = 'medium',
High = 'high'
}
type Both = MyStringEnumType | MyEnum;
let testVar1: Both = MyEnum.Limited; // works
let testVar2: Both = 'limited'; // works
console.log(myArray[0], myArray.length); // works
谢谢!
问候疯狂x13th
解决方案
好的,感谢 smnbbrv我找到了一个“好的”版本(没有“MyStringEnumType”)
- 现在我有一个枚举
- 和一个数组
export class ComplexityOptions
{
public static get Values()
{
return Object.keys(ComplexityOptions.Option).map((key: any) => (ComplexityOptions.Option[key]));
}
}
export module ComplexityOptions
{
export enum Option
{
Limited = 'limited',
Low = 'low',
Medium = 'medium',
High = 'high'
}
}
推荐阅读
- javascript - 如何将一个变量的值绑定到其他变量
- python-3.x - python变量中的堆和堆栈
- javascript - 如何在emscripten中将多个wasm文件链接在一起?(不仅仅是C)
- assembly - 索引寻址的语法(以及通常前导的逗号)
- angular9 - BehaviorSubject 下一个方法不更新另一个组件的更改
- ruby-on-rails - Rails 6,设计和主动存储
- fish - 鱼壳在管道中显示错误 - 新错误
- javascript - 将 CSS 应用于具有 NEXT Page 的数据表
- python - 按天采样的日期时间索引中的行数
- robotframework - Robotframework for loop 继续下一个测试