unknown type

A type-safe counterpart of any that requires narrowing before use.

Since TS 3.0 Spec ↗

Syntax

unknown

Examples

function parse(input: string): unknown {
  return JSON.parse(input);
}

const v = parse('{}');
if (typeof v === 'object' && v !== null) {
  // v narrowed here
}
let value: unknown = 5;
// value.toFixed(); // Error: object is of type 'unknown'

Notes

Any value is assignable to `unknown`, but `unknown` is assignable only to `unknown` and `any`. You must narrow it (via type guards, assertions, or checks) before performing operations. Prefer `unknown` over `any` for external or untyped inputs.

See also