由于“没有兼容的呼叫签名”,因此无法在打字稿中使用类名

安东尼·孔

运行相关yarn add命令后,以下是新行packages.json

"@types/classnames": "^2.2.7",
"classnames": "^2.2.6",

然后,将这些行添加到我的打字稿文件中:

import * as classnames from 'classnames';
...
            <div className={classnames('normal', 'on')}>

现在我得到这个错误

类型错误:无法调用类型缺少调用签名的表达式。输入'{默认值:ClassNamesExport; }'没有兼容的呼叫签名。TS2349

我的内容 tsconfig.json

{
  "compilerOptions": {
    "target": "es5",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "preserve",
    "experimentalDecorators": true
  },
  "include": [
    "src"
  ]
}

如何解决此错误?

联合的

完成后import * as X from 'x',您将获得一个模块名称空间对象。它是一个不可变的对象,不能调用。

由于classnames是commonjs模块,因此您需要esModuleInterop: truetsconfig.json和中进行设置import classnames from 'classnames'

或者,您也可以使用旧语法导入它import classnames = require('classnames')

建议使用esModuleInterop

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用react-cookie setCookie的打字稿错误-类型'{[名称:字符串]:任何;}'没有兼容的呼叫签名。ts(2349)

有没有办法在打字稿中使用上下文绑定

有没有办法在打字稿中使用来自续集模型的类型?

如何在打字稿中使用抽象类

如何在打字稿中使用带有模板的抽象类并调用它

无法在打字稿中使用“Helper”布尔值

打字稿反应上下文+类型“ {}”没有呼叫签名

在打字稿中使用$ .get的成功回调时,无法将数据绑定到类变量

在打字稿中使用传播算子

在打字稿中使用 vuex

在打字稿中使用createJS?

在打字稿中使用Winston

在打字稿枚举中使用对象

在打字稿中使用fs

在打字稿中使用文件

在打字稿中使用JQUERY

在打字稿中使用 apache thrift

在打字稿nextjs中使用ref

打字稿:类型“ {}”没有索引签名

在打字稿中的另一个类中使用静态类方法

如何在打字稿中使用泛型扩展类?

如何在打字稿中使用可选参数调用类构造函数

如何在打字稿中的对象中使用类变量?

如何在打字稿中的对象中使用类函数?

打字稿错误:此表达式不可调用。类型'typeof import(“ koa-session”)'没有呼叫签名

我似乎无法在打字稿中使用React.createContext的存储

如何在打字稿中使用带有es6导入语法的节点模块

如何在打字稿中使用带有矩阵参数的 svg.js 变换?

如何在打字稿文件中使用现有的javascript文件?