Skip to content

Default imported function merged with namespace cannot be called (has no call signatures) #54342

@JoshuaKGoldberg

Description

@JoshuaKGoldberg

Bug Report

🔎 Search Terms

import default function namespace call signatures

🕗 Version & Regression Information

  • This is the behavior in every version I tried, and I reviewed the FAQ for entries about modules

⏯ Playground Link

Playground link with relevant code

💻 Code

import replaceInFile from "replace-in-file";

replaceInFile({ files: "*.md", from: "a", to: "b" });

🙁 Actual behavior

This expression is not callable.
  Type 'typeof replaceInFile' has no call signatures. (ts2349)

🙂 Expected behavior

replaceInFile should be callable. It's a function and even is known to have function properties such as .apply, .bind, and .call.

If there actually is something off about the code with respect to modules and importing, then the error should be made more clear. This is very confusing. 😞

Seems to be a similar issue to #50175?

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugA bug in TypeScript

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions