Sha256: 8dd284442b56814717e70f11ca22f4ea5b35feeca680f475bfcf8f65ba4ba296

Contents?: true

Size: 1.01 KB

Versions: 28

Compression:

Stored size: 1.01 KB

Contents

import type {JsonPrimitive} from './basic';

type JsonifiableObject = {[Key in string]?: Jsonifiable} | {toJSON: () => Jsonifiable};
type JsonifiableArray = readonly Jsonifiable[];

/**
Matches a value that can be losslessly converted to JSON.

Can be used to type values that you expect to pass to `JSON.stringify`.

`undefined` is allowed in object fields (for example, `{a?: number}`) as a special case even though `JSON.stringify({a: undefined})` is `{}` because it makes this class more widely useful and checking for undefined-but-present values is likely an anti-pattern.

@example
```
import type {Jsonifiable} from 'type-fest';

// @ts-expect-error
const error: Jsonifiable = {
    map: new Map([['a', 1]]),
};

JSON.stringify(error);
//=> {"map": {}}

const good: Jsonifiable = {
    number: 3,
    date: new Date(),
    missing: undefined,
}

JSON.stringify(good);
//=> {"number": 3, "date": "2022-10-17T22:22:35.920Z"}
```

@category JSON
*/
export type Jsonifiable = JsonPrimitive | JsonifiableObject | JsonifiableArray;

Version data entries

28 entries across 28 versions & 2 rubygems

Version Path
clapton-0.0.26 lib/clapton/javascripts/node_modules/type-fest/source/jsonifiable.d.ts
clapton-0.0.25 lib/clapton/javascripts/node_modules/type-fest/source/jsonifiable.d.ts
clapton-0.0.24 lib/clapton/javascripts/node_modules/type-fest/source/jsonifiable.d.ts
clapton-0.0.23 lib/clapton/javascripts/node_modules/type-fest/source/jsonifiable.d.ts
clapton-0.0.22 lib/clapton/javascripts/node_modules/type-fest/source/jsonifiable.d.ts
clapton-0.0.21 lib/clapton/javascripts/node_modules/type-fest/source/jsonifiable.d.ts
clapton-0.0.20 lib/clapton/javascripts/node_modules/type-fest/source/jsonifiable.d.ts
clapton-0.0.19 lib/clapton/javascripts/node_modules/type-fest/source/jsonifiable.d.ts
clapton-0.0.18 lib/clapton/javascripts/node_modules/type-fest/source/jsonifiable.d.ts
clapton-0.0.17 lib/clapton/javascripts/node_modules/type-fest/source/jsonifiable.d.ts
clapton-0.0.16 lib/clapton/javascripts/node_modules/type-fest/source/jsonifiable.d.ts
clapton-0.0.15 lib/clapton/javascripts/node_modules/type-fest/source/jsonifiable.d.ts
clapton-0.0.14 lib/clapton/javascripts/node_modules/type-fest/source/jsonifiable.d.ts
clapton-0.0.13 lib/clapton/javascripts/node_modules/type-fest/source/jsonifiable.d.ts
clapton-0.0.12 lib/clapton/javascripts/node_modules/type-fest/source/jsonifiable.d.ts
clapton-0.0.11 lib/clapton/javascripts/node_modules/type-fest/source/jsonifiable.d.ts
clapton-0.0.10 lib/clapton/javascripts/node_modules/type-fest/source/jsonifiable.d.ts
clapton-0.0.9 lib/clapton/javascripts/node_modules/type-fest/source/jsonifiable.d.ts
clapton-0.0.8 lib/clapton/javascripts/node_modules/type-fest/source/jsonifiable.d.ts
clapton-0.0.7 lib/clapton/javascripts/node_modules/type-fest/source/jsonifiable.d.ts