TS18031
TypeScriptERRORNotableTypeHIGH confidence

The intersection 'X' was reduced to 'never' because property 'X' has conflict...

Production Risk

Build will fail; resolve before shipping.

What this means

A TypeScript diagnostic (TS18031): The intersection 'X' was reduced to 'never' because property 'X' has conflicting types in some constituents.. This diagnostic is emitted by the TypeScript compiler when the intersection 'X' was reduced to 'never' because property 'X' has conflicting types in some constituents..

Why it happens
  1. 1A code path that should return a value returns never instead, or vice versa
How to reproduce

TypeScript compiler reports TS18031 during type checking.

trigger — this will error
trigger — this will error
// Triggers TS18031
// The intersection 'X' was reduced to 'never' because property 'X' has conflicting types in some constituents.

expected output

error TS18031: The intersection 'X' was reduced to 'never' because property 'X' has conflicting types in some constituents.

Fix

Address the TypeScript diagnostic

WHEN When this error is reported by the compiler

Address the TypeScript diagnostic
// Run the TypeScript compiler for details:
npx tsc --noEmit
// Use the TypeScript playground to test your code:
// https://www.typescriptlang.org/play

Why this works

Review the full error message and location; the TypeScript handbook provides guidance on each error category.

Sources
Official documentation ↗

TypeScript Compiler Diagnostics

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

← All TypeScript errors