'isolatedModules error on Jest test with Create React App and TypeScript?

I've started a Create React App project with --typescript. When I write a test Im getting a compiler error:

// something-test.tsx
test('something', ()=>{
  expect(1).toBe(1)
})

The error is:

TS1208: All files must be modules when the '--isolatedModules' flag is provided.

From googling I thought the fix was to create a jest.config.tsx with:

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

However it's made no difference.



Solution 1:[1]

You do not have any import statements in your code. This basically means you are not testing anything outside of the test file.

If you test something that is not in the test code (and therefore import something), the test file will become a module and the error will go away ?

Solution 2:[2]

One workaround to fix the TS1208 without adding an unused import is to add an export:

// something-test.tsx
export {}; // silence TS1208 error

test('something', ()=>{
  expect(1).toBe(1)
})

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 basarat
Solution 2 Clare Macrae