Skip to content

JSONValue

JSON.parse が生成しうるすべての値です。

typescript
type Value = JSONValue;

使用法

JSONValue

API レスポンスや設定ファイルなど、JSON を経由してやり取りするデータに使います。関数、Dateundefined、クラスのインスタンスは JSON を往復すると失われるため除外されます。

typescript
import type { JSONValue } from 'es-toolkit/types';

declare function parse(text: string): JSONValue;

const value = parse('{"a":[1,null]}');
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
  const a = value.a; // JSONValue
}

const ok: JSONValue = { name: 'toss', tags: ['a', 'b'], count: null };

// const bad: JSONValue = { at: new Date() }; // エラーです。Date は JSON ではありません。

// JSON オブジェクトだけを受け取りたいときは Record を使います。
declare function send(body: Record<string, JSONValue>): void;

注意点

NaNInfinitynumber なので型チェックは通りますが、JSON.stringify を通すと null になります。型では防げないので、値を作るときに気をつけてください。

MIT ライセンスの下で配布されています。