programing

형식 지정 열거형 값을 배열로 표시

prostudy 2022. 3. 7. 22:11
반응형

형식 지정 열거형 값을 배열로 표시

TypeScript에서 열거형의 값을 배열로 얻을 수 있는가?

다음과 같은 경우:

enum MyEnum {
    FOO = 'foo',
    BAR = 'bar'
}

된다

['foo', 'bar']

예, 다음과 같은 기능을 사용할 수 있다.

Object.values(MyEnum)

enum은 컴파일 후 JS 객체이기 때문에:

var MyEnum;
(function (MyEnum) {
    MyEnum["FOO"] = "foo";
    MyEnum["BAR"] = "bar";
})(MyEnum || (MyEnum = {}));

가장 간단한 방법은string을 열거하다Object.values

enum MyEnum {
    FOO = 'foo',
    BAR = 'bar'
}
console.log(Object.values(MyEnum));

완전히 입력된 코드의 경우 템플릿 리터럴 연산자의 도움을 받아 유형으로 값 목록을 유추할 수 있다.

enum MyEnum {
    FOO = 'foo',
    BAR = 'bar'
}

type MyEnumValue = `${MyEnum}`
// => type MyEnumValue = "foo" | "bar"

const values: MyEnumValue[] = Object.values(MyEnum)
// => ["foo", "bar"]

참조 문서:동적으로 열거형가져오기(제명자: 작성자)

편집:

임호 @ 표도르 용액은 끈 에눔을 덮기 때문에 더 깨끗하다.

const enumAsArray = Object.values(MyEnum).filter(value => typeof value === 'string')

참조URL: https://stackoverflow.com/questions/56036446/typescript-enum-values-as-array

반응형