TS2412
TypeScriptERRORNotableTypeHIGH confidence

Type 'X' is not assignable to type 'X' with 'exactOptionalPropertyTypes: true...

Production Risk

Build will fail; resolve before shipping.

What this means

A type-checking error (TS2412): Type 'X' is not assignable to type 'X' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target.. This diagnostic is emitted by the TypeScript compiler when type 'X' is not assignable to type 'X' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target..

Why it happens
  1. 1The value type does not match the declared or expected type
  2. 2A type narrowing or assertion is needed
How to reproduce

TypeScript compiler reports TS2412 during type checking.

trigger — this will error
trigger — this will error
// Triggers TS2412
// Type 'X' is not assignable to type 'X' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target.

expected output

error TS2412: Type 'X' is not assignable to type 'X' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target.

Fix

Fix the type mismatch

WHEN When the value type does not match the target type

Fix the type mismatch
// Add a type assertion if you are certain of the type
const value = someValue as ExpectedType;
// Or fix the source type to match

Why this works

Type assertions bypass type checking; prefer fixing the underlying type mismatch.

Sources
Official documentation ↗

TypeScript Compiler Diagnostics

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All TypeScript errors