reactjs ts-摩卡和chai -错误TS 2695:逗号运算符的左侧未使用,没有副作用

nwo49xxi  于 2023-02-08  发布在  React
关注(0)|答案(3)|浏览(595)

工具/库版本:

"ts-mocha": "^8.0.0",
"ts-node": "^10.3.0",
"chai": "^4.3.4",

代码:

expect(wrapper.find(MyListItem)).to.have.length(3);

指令:

ts-mocha tests/**/*.tsx  -r unitTestSetup.ts

我的打字脚本编译器选项:

{
"compilerOptions": {
  "target": "es5",
  "module": "commonjs",
  "declaration": true,
  "outDir": "./lib",
  "strict": true,
  "esModuleInterop": true,
},

错误:

tests/index.spec.tsx:41:10 - error TS2695: Left side of comma operator is unused and has no side effects.
41         (0, chai_1.expect)(wrapper.find(MyListItem)).to.have.length(3);

这可能是由于没有安装ts-mocha的可选依赖项造成的。(tsconfig-paths
有没有比在ts-mocha包上执行npm install --force命令来强制它安装tsconfig-paths更好的方法来解决这个问题呢?(我提供了答案)

irtuqstp

irtuqstp1#

我在使用ts-node的时候遇到了同样的问题,原因是ES模块包感染了代码,参见here
有些人试图切换到ES模块,如here,但这对我不起作用,因为我仍然有大部分commonjs模块。
我的解决方案是使用ES模块去掉npm包(即在package.json中包含"type": "module")。

ffvjumwh

ffvjumwh2#

我通过在package.json文件中创建一个'fix-ts-mocha'脚本修复了这个问题:

"fix-ts-mocha": "cd node_modules && cd ts-mocha && npm install --force"

我在npm install之后(或每次ts-mocha更新时)运行一次。

5sxhfpxr

5sxhfpxr3#

终于找到了解决方案。(尝试了mochats-mocha,修复对两者都有效)。
当我在ts配置文件中设置"module": "ESNext"时,它对我有效
和在package.json中的"type": "module",

相关问题