Skip to content

Objects ​

values and lookup are typed against the object's declared fields — lookup infers the union of field types.

keys ​

keys(value: object): string[]

Property names (merged across elements for an array of objects).

typeflow
headerNames: keys(req.headers)

values ​

values(value: object): unknown[]

Property values, typed as the union of the object's field types.

typeflow
headerValues: values(req.headers)

lookup ​

lookup(value: object, key: string): unknown

Value of the given key (mapped over an array of objects).

typeflow
host: lookup(req.headers, "host")

merge ​

merge(objects: object[]): object

Merges an array of objects left to right.

typeflow
settings: merge([defaults, user.overrides])

spread ​

spread(value: object): object[]

Splits an object into an array of single-property objects.

typeflow
entries: spread(req.headers)

type ​

type(value: unknown): string

"string" | "number" | "boolean" | "null" | "array" | "object" | "undefined".

typeflow
kind: type(req.headers)

Playground ​

Mapping✔Playground ↗
Input JSON
Output
{
  "headerNames": [
    "host",
    "accept"
  ],
  "host": "example.dev",
  "merged": {
    "a": 1,
    "b": 2
  },
  "kind": "object"
}
inferred type{ headerNames: string[]; host?: string; merged: any; kind: string; }

Released under the MIT License.