├── .eslintrc.js ├── .github └── workflows │ └── check.yml ├── .gitignore ├── CHANGELOG.md ├── LICENSE ├── README.md ├── index.js ├── package-lock.json ├── package.json ├── renovate.json ├── test ├── sample.ts ├── sample.tsx └── sampleTypes.ts └── tsconfig.json /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = require("./index.js"); -------------------------------------------------------------------------------- /.github/workflows/check.yml: -------------------------------------------------------------------------------- 1 | # This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions 3 | 4 | name: Check Projects 5 | 6 | on: 7 | push: 8 | branches: [ master ] 9 | pull_request: 10 | branches: [ master ] 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: ubuntu-latest 16 | 17 | strategy: 18 | matrix: 19 | node-version: [12.x, 14.x, 16.x] 20 | # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ 21 | 22 | steps: 23 | - uses: actions/checkout@v2 24 | - name: Use Node.js ${{ matrix.node-version }} 25 | uses: actions/setup-node@v2 26 | with: 27 | node-version: ${{ matrix.node-version }} 28 | - name: npm ci, and npm test 29 | run: | 30 | npm ci 31 | npm test 32 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # dependencies 2 | node_modules 3 | 4 | # logs 5 | *.log 6 | 7 | # mac 8 | .DS_STORE 9 | 10 | # idea 11 | .idea 12 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. 4 | 5 | ## [5.0.0](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/compare/v4.2.0...v5.0.0) (2021-12-12) 6 | 7 | ### ⚠ BREAKING CHANGES 8 | 9 | * Update dependencies 10 | * `eslint-config-airbnb` 11 | * `v18.2.1` to `v19.0.2` 12 | * `@typescript-eslint` 13 | * `v4.7.0` to `v5.6.0` 14 | * `eslint(peerDependencies)` 15 | * `"^5.16.0 || ^6.8.0 || ^7.2.0"` to `"^7.32.0 || ^8.2.0"` 16 | 17 | ### Features 18 | 19 | * **deps:** upgrade `eslint-config-airbnb` and `[@typescript-eslint](https://github.com/typescript-eslint)` ([#98](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/issues/98)) ([43729d8](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/43729d8517decfa25b1e1c7e2f24229ce9152ffa)) 20 | 21 | ## [4.2.0](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/compare/v4.1.0...v4.2.0) (2021-03-16) 22 | 23 | 24 | ### Features 25 | 26 | * Update TypeScript Support. ([#82](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/issues/82)) ([91e73b3](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/91e73b38bf5b778a7989a1d3c4e3759bdb35e09e)) 27 | 28 | 29 | ### Bug Fixes 30 | 31 | * use no-shadow of [@typescript-eslint](https://github.com/typescript-eslint) instead of base rule ([#71](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/issues/71)) ([319683c](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/319683cd43500e73140faae765bb88d0399ba6f3)) 32 | 33 | ## [4.1.0](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/compare/v3.1.0...v4.1.0) (2020-11-21) 34 | 35 | 36 | ### ⚠ BREAKING CHANGES 37 | 38 | * Update dependencies 39 | 40 | ### Features 41 | 42 | * Update dependencies to work with TypeScript v4 ([#67](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/issues/67)) ([116e92b](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/116e92b4f795492eea1f7355a5e3f813a2bd3907)) 43 | 44 | 45 | ### Bug Fixes 46 | 47 | * use no-shadow of [@typescript-eslint](https://github.com/typescript-eslint) instead of base rule ([#71](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/issues/71)) ([319683c](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/319683cd43500e73140faae765bb88d0399ba6f3)) 48 | 49 | ## [4.0.0](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/compare/v3.1.0...v4.0.0) (2020-11-14) 50 | 51 | 52 | ### ⚠ BREAKING CHANGES 53 | 54 | * Update dependencies 55 | * `@typescript-eslint/eslint-plugin`: `^3.3.0` to `^4.7.0` 56 | * `@typescript-eslint/parser`: `^3.3.0` to `^4.7.0` 57 | * `eslint-config-airbnb`: `^18.2.0` to `^18.2.1` 58 | * `eslint-config-prettier`: `^6.11.0` to `^6.15.0` 59 | * `eslint-plugin-import`: `^2.21.2` to `^2.22.1` 60 | * `eslint-plugin-jsx-a11y`: `^6.3.1` to `^6.4.1` 61 | * `eslint-plugin-react`: `^7.20.0` to `^7.21.5` 62 | * `eslint-plugin-react-hooks`: `^4.0.4` to `^4.2.0` 63 | 64 | ### Features 65 | 66 | * Update dependencies and Support TypeScript v4 ([#67](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/issues/67)) ([116e92b](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/116e92b4f795492eea1f7355a5e3f813a2bd3907)) 67 | 68 | ## [3.1.0](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/compare/v3.0.0...v3.1.0) (2020-06-22) 69 | 70 | 71 | ### Features 72 | 73 | * Update eslint-config-airbnb to v18.2.0 and Support ESLint v7 ([#51](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/issues/51)) ([9b1133c](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/9b1133cd3f0445a264881729bdd4b1ff50ecd9b1)) 74 | * Update eslint-config-prettier and eslint-plugin-prettier ([#52](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/issues/52)) ([c9c720c](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/c9c720c670c51b85d835254ae6d1f7cee47713b7)) 75 | 76 | ## [3.0.0](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/compare/v2.2.0...v3.0.0) (2020-06-22) 77 | 78 | 79 | ### ⚠ BREAKING CHANGES 80 | 81 | * enable new rules in typescript-eslint/recommended 82 | 83 | ### Features 84 | 85 | * Update typescript-eslint to v3 ([#50](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/issues/50)) ([68e89cc](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/68e89cc363df48e32d67f10cf7523a5bb0025b7c)) 86 | 87 | ## [2.2.0](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/compare/v2.1.1...v2.2.0) (2020-06-21) 88 | 89 | 90 | ### Features 91 | 92 | * Support Prettier v2 ([#32](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/issues/32)) ([64e5fbe](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/64e5fbe1a7d7d9327b06c2a8c5016aa3d52aaaa4)) 93 | 94 | ### [2.1.1](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/compare/v2.1.0...v2.1.1) (2020-03-27) 95 | 96 | 97 | ### Bug Fixes 98 | 99 | * move Prettier from deps to devDeps ([#38](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/issues/38)) ([680dfbd](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/680dfbd8a35ad5659dfb5c5223bd5be4801aac73)) 100 | * **deps:** update dependency eslint-plugin-react-hooks to v3 ([#36](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/issues/36)) ([0499e56](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/0499e561cd99897e67b5c40592dce8f65c86b2c4)) 101 | 102 | ## [2.1.0](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/compare/v2.0.0...v2.1.0) (2020-03-24) 103 | 104 | 105 | ### Features 106 | 107 | * Support `eslint-config-airbnb@18.1.0` ([#34](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/issues/34)) ([866c829](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/866c8291aa016895f9c0804c6e17b5387ebc6033)) 108 | 109 | ## [2.0.0](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/compare/v1.4.2...v2.0.0) (2020-03-24) 110 | 111 | 112 | ### ⚠ BREAKING CHANGES 113 | 114 | * enables airbnb/hooks 115 | 116 | ### Features 117 | 118 | * enables airbnb/hooks ([#33](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/issues/33)) ([3758eb0](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/3758eb01c0a5db1c33f41b0654da317d024fba0a)) 119 | 120 | ### [1.4.2](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/compare/v1.4.1...v1.4.2) (2019-12-19) 121 | 122 | 123 | ### Bug Fixes 124 | 125 | * import/extensions error for ts and tsx ([#26](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/issues/26)) ([8999650](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/8999650)) 126 | 127 | 128 | 129 | ### [1.4.1](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/compare/v1.4.0...v1.4.1) (2019-11-21) 130 | 131 | 132 | 133 | ## [1.4.0](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/compare/v1.3.0...v1.4.0) (2019-09-12) 134 | 135 | 136 | ### Features 137 | 138 | * add support for TypeScript 3.6 ([#18](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/issues/18)) ([b2dfd55](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/b2dfd55)) 139 | 140 | 141 | 142 | ## [1.3.0](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/compare/v1.2.1...v1.3.0) (2019-08-29) 143 | 144 | 145 | ### Features 146 | 147 | * Support ESLint v6 ([#16](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/issues/16)) ([c3b52c7](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/c3b52c7)), closes [/github.com/typescript-eslint/typescript-eslint/issues/853#issuecomment-521528629](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/issues/issuecomment-521528629) 148 | 149 | 150 | 151 | ### [1.2.1](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/compare/v1.2.0...v1.2.1) (2019-06-28) 152 | 153 | 154 | ### Tests 155 | 156 | * add .eslintrc.js and sample code ([4de54e3](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/4de54e3)) 157 | * **deps:** add deps and test scripts ([b47d78e](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/b47d78e)) 158 | * **deps:** install react ([437efd5](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/437efd5)) 159 | * add config for circleci ([0b0892d](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/0b0892d)) 160 | * add tsconfig.json ([2285361](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/2285361)) 161 | 162 | 163 | 164 | ## [1.2.0](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/compare/v1.1.0...v1.2.0) (2019-06-17) 165 | 166 | 167 | ### Bug Fixes 168 | 169 | * remove unnecessary config ([4a4931e](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/4a4931e)) 170 | 171 | 172 | ### Features 173 | 174 | * add some rules ([8376c17](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/8376c17)) 175 | 176 | 177 | 178 | ## 1.1.0 (2019-06-16) 179 | 180 | 181 | ### Features 182 | 183 | * add eslint config airbnb, typescript, prettier ([d1785a0](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/commit/d1785a0)) 184 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Toshihisa Tomatsu 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # eslint-config-airbnb-typescript-prettier 2 | 3 | [![npm version][npm-image]][npm-url] 4 | [](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/actions/workflows/check.yml) 5 | ![License][license] 6 | 7 | Airbnb's ESLint config with TypeScript and Prettier support. 8 | 9 | # How to use 10 | Install `typescript`, `eslint` and `prettier`, `eslint-config-airbnb-typescript-prettier` and put it into your `.eslintrc.js`. 11 | 12 | ```bash 13 | $ npm install typescript eslint prettier eslint-config-airbnb-typescript-prettier --save-dev 14 | ``` 15 | 16 | `.eslintrc.js` 17 | 18 | ```js 19 | module.exports = { 20 | extends: "airbnb-typescript-prettier" 21 | }; 22 | ``` 23 | 24 | ## License 25 | 26 | Open source [licensed as MIT](https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/blob/master/LICENSE). 27 | 28 | [npm-image]: https://img.shields.io/npm/v/eslint-config-airbnb-typescript-prettier.svg 29 | [npm-url]: https://npmjs.org/package/eslint-config-airbnb-typescript-prettier 30 | [license]: https://img.shields.io/npm/l/eslint-config-airbnb-typescript-prettier.svg 31 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | parser: "@typescript-eslint/parser", 3 | env: { 4 | browser: true, 5 | es6: true, 6 | }, 7 | extends: [ 8 | "airbnb", 9 | "airbnb/hooks", 10 | "plugin:@typescript-eslint/recommended", 11 | "prettier", 12 | "prettier/react", 13 | "prettier/@typescript-eslint", 14 | ], 15 | plugins: ["react", "jsx-a11y", "import", "prettier", "@typescript-eslint"], 16 | globals: {}, 17 | rules: { 18 | // prettier 19 | "prettier/prettier": ["error"], 20 | // TypeScript 21 | "@typescript-eslint/no-unused-vars": "error", 22 | "@typescript-eslint/explicit-member-accessibility": "off", 23 | "@typescript-eslint/no-object-literal-type-assertion": "off", 24 | // v4 changes 25 | "no-use-before-define": "off", 26 | "@typescript-eslint/no-use-before-define": ["error"], 27 | "no-shadow": "off", 28 | "@typescript-eslint/no-shadow": ["error"], 29 | // React 30 | "react/jsx-filename-extension": ["error", { extensions: [".tsx"] }], 31 | "react/prop-types": ["off", {}], 32 | // import 33 | "import/extensions": [ 34 | "error", 35 | "ignorePackages", 36 | { 37 | js: "never", 38 | mjs: "never", 39 | jsx: "never", 40 | ts: "never", 41 | tsx: "never", 42 | }, 43 | ], 44 | }, 45 | settings: { 46 | "import/resolver": { 47 | node: { 48 | extensions: [".js", ".ts", ".jsx", ".tsx", ".json"], 49 | }, 50 | }, 51 | "import/extensions": [".js", ".ts", ".mjs", ".jsx", ".tsx"], 52 | }, 53 | }; 54 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "eslint-config-airbnb-typescript-prettier", 3 | "version": "5.0.0", 4 | "description": "Airbnb's ESLint config with TypeScript and Prettier support", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "eslint --ext .tsx,ts test/", 8 | "release": "npm test && standard-version", 9 | "release:dryrun": "standard-version --dry-run" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "git+ssh://git@github.com/toshi-toma/eslint-config-airbnb-typescript-prettier.git" 14 | }, 15 | "engines": { 16 | "node": "^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0" 17 | }, 18 | "keywords": [ 19 | "eslint", 20 | "airbnb", 21 | "typescript", 22 | "prettier" 23 | ], 24 | "author": "toshi-toma", 25 | "license": "MIT", 26 | "bugs": { 27 | "url": "https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier/issues" 28 | }, 29 | "homepage": "https://github.com/toshi-toma/eslint-config-airbnb-typescript-prettier#readme", 30 | "dependencies": { 31 | "@typescript-eslint/eslint-plugin": "^5.6.0", 32 | "@typescript-eslint/parser": "^5.6.0", 33 | "eslint-config-airbnb": "^19.0.2", 34 | "eslint-config-prettier": "^6.15.0", 35 | "eslint-plugin-import": "^2.25.3", 36 | "eslint-plugin-jsx-a11y": "^6.5.1", 37 | "eslint-plugin-prettier": "^3.1.4", 38 | "eslint-plugin-react": "^7.27.1", 39 | "eslint-plugin-react-hooks": "^4.3.0" 40 | }, 41 | "peerDependencies": { 42 | "eslint": "^7.32.0 || ^8.2.0", 43 | "prettier": "^1.18.2 || ^2.0.0", 44 | "typescript": ">=3.3.1" 45 | }, 46 | "devDependencies": { 47 | "@types/react": "17.0.37", 48 | "eslint": "8.4.1", 49 | "prettier": "2.1.2", 50 | "react": "17.0.2", 51 | "standard-version": "9.0.0", 52 | "typescript": "4.5.3" 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "config:base" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /test/sample.ts: -------------------------------------------------------------------------------- 1 | import { Person, SampleData } from "./sampleTypes"; 2 | 3 | function sum(a: number, b: number) { 4 | return a + b; 5 | } 6 | 7 | sum(1, 2); 8 | 9 | function greeter(person: Person) { 10 | return `My name is ${person.name}. I am ${person.age} years old.`; 11 | } 12 | 13 | greeter({ name: "toshi-toma", age: 24 }); 14 | 15 | function greeterWithEnum(person: SampleData) { 16 | return `My name is ${person.name}. I am ${person.age} years old.`; 17 | } 18 | 19 | greeterWithEnum({ name: SampleData.name, age: SampleData.age }); 20 | -------------------------------------------------------------------------------- /test/sample.tsx: -------------------------------------------------------------------------------- 1 | import React, { FC } from "react"; 2 | 3 | const Foo = function foo() { 4 | return
Foo
; 5 | }; 6 | const Component: FC = function Component() { 7 | return20 | {name}, {age} 21 |
22 | ); 23 | }; 24 | 25 | const ComponentWithHooks: FC = function ComponentWithHooks() { 26 | const [count, setCount] = React.useState(0); 27 | React.useEffect(() => { 28 | const n = count + 1; 29 | setCount(n); 30 | }, [count]); 31 | return ( 32 | 35 | ); 36 | }; 37 | 38 | export default { 39 | Component, 40 | ComponentWithProps, 41 | ComponentWithHooks, 42 | }; 43 | -------------------------------------------------------------------------------- /test/sampleTypes.ts: -------------------------------------------------------------------------------- 1 | export interface Person { 2 | name: string; 3 | age: number; 4 | } 5 | 6 | export const enum SampleData { 7 | name = "toshi-toma", 8 | age = 24, 9 | } 10 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNEXT", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */ 4 | "module": "ESNEXT", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ 5 | "lib": ["esnext"], /* Specify library files to be included in the compilation. */ 6 | "jsx": "react", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ 7 | "noEmit": true, /* Do not emit outputs. */ 8 | "strict": true, /* Enable all strict type-checking options. */ 9 | "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ 10 | "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ 11 | "allowJs": true 12 | } 13 | } 14 | --------------------------------------------------------------------------------