数组定义的打字稿类型

时间:2018-09-05 17:16:05

标签: arrays typescript types

我正在用keyof,typeof,... 枚举和数组是否可以有一个“数据源”?

例如:
-我想要一个枚举类型
-和一个数组

但是我想定义一个真理来源。目前,我定义了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

谢谢!

问候 crazyx13th

1 个答案:

答案 0 :(得分:0)

好的,对 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'
    }
}