lukeed / clsx

A tiny (239B) utility for constructing `className` strings conditionally.
MIT License
8.21k stars 142 forks source link

"This expression is not callable." error when using TypeScript with moduleResolution "node16" or "nodenext" #75

Closed wojtekmaj closed 1 year ago

wojtekmaj commented 1 year ago

When using TypeScript with moduleResolution "node16" or "nodenext", importing clsx and using it:

import clsx from 'clsx';

clsx('a', 'b', 'c');

produces the following error:

src/index.tsx(3,0): error TS2349: This expression is not callable.
  Type 'typeof import("/node_modules/clsx/clsx")' has no call signatures.

It appears the problem is with the way typings are shipped with this library. Please read: https://github.com/microsoft/TypeScript/issues/49189#issuecomment-1137756847

The thread also mentions the same problem with classnames package, but it appears that they have dealt with it since then.

wojtekmaj commented 1 year ago

Would have been fixed by #57

lukeed commented 1 year ago

Closed by #57