Generics
as const: 値をliteral型として保つ
as constは配列の要素を広いstringではなくliteral unionとして保持します。
SourceconstAssertions.ts
Node.js 22
export const states = ['ready', 'failed'] as const;
export type State = (typeof states)[number];
export const acceptState = (state: State) => state;TestconstAssertions.test.ts
Node.js 22
import assert from 'node:assert/strict'; import test from 'node:test'; import { acceptState, states } from '../../src/types/constAssertions.js';
test('as constは配列要素をliteral unionとして保つ', () => { assert.deepEqual(states, ['ready', 'failed']); assert.equal(acceptState('ready'), 'ready'); });01Assertion
このテストで確認できること
- 配列値をそのまま読める
- Stateはreadyまたはfailedになる
固定候補から型を導出したい場合にas constを使います。
OBSERVED RESULT
State → ready | failed