Installation
Install packages
yarn add typescript @types/jest @types/react @types/react-native @types/react-test-renderer
yarn add typescript @types/jest @types/react @types/react-native @types/react-test-renderer
yarn add typescript @types/jest @types/react @types/react-native @types/react-test-renderer
Create “tsconfig.json” file
{
"compilerOptions": {
"allowJs": true,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"isolatedModules": true,
"jsx": "react",
"lib": ["es6"],
"moduleResolution": "node",
"noEmit": true,
"strict": true,
"target": "esnext",
"resolveJsonModule": true // React Native template app is using import JSON file directly
},
"exclude": [
"node_modules",
"babel.config.js",
"metro.config.js",
"jest.config.js"
]
}
{
"compilerOptions": {
"allowJs": true,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"isolatedModules": true,
"jsx": "react",
"lib": ["es6"],
"moduleResolution": "node",
"noEmit": true,
"strict": true,
"target": "esnext",
"resolveJsonModule": true // React Native template app is using import JSON file directly
},
"exclude": [
"node_modules",
"babel.config.js",
"metro.config.js",
"jest.config.js"
]
}
{ "compilerOptions": { "allowJs": true, "allowSyntheticDefaultImports": true, "esModuleInterop": true, "isolatedModules": true, "jsx": "react", "lib": ["es6"], "moduleResolution": "node", "noEmit": true, "strict": true, "target": "esnext", "resolveJsonModule": true // React Native template app is using import JSON file directly }, "exclude": [ "node_modules", "babel.config.js", "metro.config.js", "jest.config.js" ] }
Create jest.config.js file
module.exports = {
preset: 'react-native',
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
};
module.exports = {
preset: 'react-native',
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
};
module.exports = { preset: 'react-native', moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'], };
Fix error when changing “.js” to “.tsx”
Could not find a declaration file for module ‘react-redux’
yarn add @types/react-redux --dev
yarn add @types/react-redux --dev
yarn add @types/react-redux --dev
Dynamic imports are only supported when the ‘–module’ flag is set to ‘es2020’, ‘esnext’, ‘commonjs’, ‘amd’, ‘system’, or ‘umd’.
Add the following option into “tsconfig.json” file
...
"compilerOptions": {
...
"module": "esnext"
}
...
"compilerOptions": {
...
"module": "esnext"
}
... "compilerOptions": { ... "module": "esnext" }
Leave a Reply