# TS2367: This comparison appears to be unintentional because the types '…' and '…' have no overlap.

> A comparison (`===`, `!==`, `==`, `!=`) between two types that can never be equal. It's always true or always false; check the logic.

## What it means

When the two operand types have no value in common, the comparison has a fixed result.
This usually means a typo in a literal, a comparison already ruled out by earlier narrowing,
or comparing values of unrelated types.

## Example

```ts
type Status = "open" | "closed";

export function isDone(s: Status) {
  return s === "done";
}
```

## How to fix

- Fix the literal or the variable being compared.
- If earlier code already narrowed the value, remove the redundant check.

Source: https://ts-r.dev/errors/TS2367/
