使用 Create React App 和 TypeScript 进行 Jest 测试时的isolatedModules 错误?

Eva*_*nss 25 typescript jestjs create-react-app

我已经使用 --typescript 启动了一个 Create React App 项目。当我编写测试时,出现编译器错误:

// something-test.tsx
test('something', ()=>{
  expect(1).toBe(1)
})
Run Code Online (Sandbox Code Playgroud)

错误是:

TS1208:当提供“--isolatedModules”标志时,所有文件都必须是模块。

从谷歌搜索我认为修复是创建一个 jest.config.tsx :

module.exports = {
  roots: ["<rootDir>/src"],
  transform: {
    "^.+\\.tsx?$": "ts-jest"
  },
  testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$",
  moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"]
};
Run Code Online (Sandbox Code Playgroud)

然而这并没有什么区别。

bas*_*rat 66

import的代码中没有任何语句。这基本上意味着您没有测试测试文件之外的任何内容。

如果你测试一些不在测试代码中的东西(因此导入一些东西),测试文件将成为一个模块,错误就会消失

  • 我试图从 tsconfig 中排除测试文件,但这更有意义,不要进行不测试任何内容的测试,但如果您想创建一个测试文件只是为了测试测试是否正常工作,请尝试导入一些随机模块,它会工作。 (3认同)