Polyfills Jest 测试失败类型 ErrorHandler = (error: mix, isFatal: boolean) => void;

Taf*_*ake 8 typescript jestjs react-native ts-jest

我正在尝试使用 Jest 并仅测试渲染,这是我的测试文件:

import "react-native"; 
import React from "react"; 
import App from"../src/Root/"; 
import { create } from "react-test-renderer";

describe("App", () => {
 const tree = create(<App />).toJSON();  
 it("renders correctly", () => {
  expect(tree).toMatchSnapshot();
 }); 
});
Run Code Online (Sandbox Code Playgroud)

当我运行时yarn test,出现错误

错误信息:

  /dic/node_modules/react-native/Libraries/polyfills/error-guard.js:14
    type ErrorHandler = (error: mixed, isFatal: boolean) => void;
         ^^^^^^^^^^^^

    SyntaxError: Unexpected identifier

      at Runtime.createScriptFromCode (node_modules/jest-runtime/build/index.js:1350:14)
      at Object.<anonymous> (node_modules/react-native/jest/setup.js:16:6)

Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        0.128 s
Run Code Online (Sandbox Code Playgroud)

babel.config.js

module.exports = {
  presets: [
    ["@babel/preset-env", { targets: { node: "current" } }],
    "@babel/preset-typescript",
  ],
  plugins: [["module:react-native-dotenv"], "react-native-reanimated/plugin"],
};
Run Code Online (Sandbox Code Playgroud)

笑话配置.js

module.exports = {
  preset: "react-native",

  moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
  transform: {
    "^.+\\.(js|jsx)$": "babel-jest",
    "^.+\\.(ts|tsx)$": "ts-jest",
  },
  transformIgnorePatterns: [
    "node_modules/(?!(jest-)?@react-native|react-(native|universal|navigation)-(.*)|@react-native-community/(.*)|@react-navigation/(.*)|bs-platform|(@[a-zA-Z]+/)?(bs|reason|rescript)-(.*)+)",
  ],
};
Run Code Online (Sandbox Code Playgroud)

我在网上尝试了大量的解决方案,但找不到适合我的问题的解决方案,包括将react-native添加到transformIgnorePatterns