Language
enum: numeric enumは実行時にもobjectとして残る
numeric enumはJavaScriptへ出力され、数値から名前を逆引きできます。
SourcebuildState.ts
Node.js 22
export enum BuildState { Ready, Failed }
export const enumRuntimeValue = () => ({ numeric: BuildState.Ready, name: BuildState[BuildState.Ready] });TestbuildState.test.ts
Node.js 22
import assert from 'node:assert/strict'; import test from 'node:test'; import { enumRuntimeValue } from '../../src/enum/buildState.js';
test('numeric enumはJavaScript実行時に逆引き可能なobjectとして残る', () => { assert.deepEqual(enumRuntimeValue(), { numeric: 0, name: 'Ready' }); });01Assertion
このテストで確認できること
- Readyは0になる
- 0からReadyを逆引きできる
enumは型だけではなくruntime objectを生成します。
OBSERVED RESULT
0 → Ready