# TypeScript: error TS2604: JSX element type 'Foo' does not have any construct or call signatures.

**Code:** `TS2604: JSX element type does not have any construct or call signatures` · **Category:** TypeScript · **Seen on:** TypeScript, React

You used something as a JSX component that TypeScript doesn't see as a component (not a function/class returning JSX).

## Meaning

Check the import: default vs named, namespace import used as a component (`import * as Foo`), a variable typed as `unknown`/object, mismatched `@types/react` versions (duplicates), or a component returning `void`/non-JSX. After React 18/19 type upgrades, ensure single `@types/react`.

## Common causes

- Wrong import form (default/named)
- Component typed incorrectly
- Duplicate `@types/react` versions
- Returning `undefined`/invalid JSX type
- Module resolution picks a wrong typing

## Quick fix

1. Fix the import and exported component type
2. `npm ls @types/react` and dedupe
3. Ensure the function returns `JSX.Element`/`ReactNode`

## Detailed fix by platform

### Linux

1. `npm ls @types/react && npm dedupe`

## How to diagnose

1. **Import** — Correct?
2. **Types** — One @types/react?
3. **Return** — JSX?

---
Source: [WhatIsMyError](https://whatismyerror.com/errors/typescript/ts2604-jsx-element-type-does-not-have-construct-or-call-signatures)
