eslint-import-resolver-typescript
    TypeScript icon, indicating that this package has built-in type declarations

    3.2.0 • Public • Published

    eslint-import-resolver-typescript

    GitHub Actions type-coverage npm GitHub Release

    David Peer David David Dev

    Conventional Commits JavaScript Style Guide Code Style: Prettier changesets

    This plugin adds TypeScript support to eslint-plugin-import.

    This means you can:

    • import/require files with extension .cts/.mts/.ts/.tsx!
    • Use paths defined in tsconfig.json.
    • Prefer resolve @types/* definitions over plain .js.
    • Multiple tsconfigs support just like normal.
    • exports fields support in package.json

    TOC

    Notice

    After version 2.0.0, .d.ts will take higher priority then normal .js files on resolving node_modules packages in favor of @types/* definitions.

    If you're facing some problems on rules import/default or import/named from eslint-plugin-import, do not post any issue here, because they are just working exactly as expected on our sides, take https://github.com/benmosher/eslint-plugin-import/issues/1525 as reference or post a new issue to eslint-plugin-import instead.

    Installation

    # npm
    npm i -D eslint-plugin-import eslint-import-resolver-typescript
    
    # pnpm
    pnpm i -D eslint-plugin-import eslint-import-resolver-typescript
    
    # yarn
    yarn add -D eslint-plugin-import eslint-import-resolver-typescript

    Configuration

    Add the following to your .eslintrc config:

    {
      "plugins": ["import"],
      "rules": {
        // turn on errors for missing imports
        "import/no-unresolved": "error"
      },
      "settings": {
        "import/parsers": {
          "@typescript-eslint/parser": [".ts", ".tsx"]
        },
        "import/resolver": {
          "typescript": {
            "alwaysTryTypes": true, // always try to resolve types under `<root>@types` directory even it doesn't contain any source code, like `@types/unist`
    
            // Choose from one of the "project" configs below or omit to use <root>/tsconfig.json by default
    
            // use <root>/path/to/folder/tsconfig.json
            "project": "path/to/folder",
    
            // Multiple tsconfigs (Useful for monorepos)
    
            // use a glob pattern
            "project": "packages/*/tsconfig.json",
    
            // use an array
            "project": [
              "packages/module-a/tsconfig.json",
              "packages/module-b/tsconfig.json"
            ],
    
            // use an array of glob patterns
            "project": [
              "packages/*/tsconfig.json",
              "other-packages/*/tsconfig.json"
            ]
          }
        }
      }
    }

    Contributing

    • Make sure your change is covered by a test import.
    • Make sure that yarn test passes without a failure.
    • Make sure that yarn lint passes without conflicts.
    • Make sure your code changes match our type-coverage settings: yarn type-coverage.

    We have GitHub Actions which will run the above commands on your PRs.

    If either fails, we won't be able to merge your PR until it's fixed.

    Sponsors

    1stG RxTS UnTS
    1stG Open Collective backers and sponsors RxTS Open Collective backers and sponsors UnTS Open Collective backers and sponsors

    Backers

    1stG RxTS UnTS
    1stG Open Collective backers and sponsors RxTS Open Collective backers and sponsors UnTS Open Collective backers and sponsors

    Changelog

    Detailed changes for each release are documented in CHANGELOG.md.

    License

    ISC

    Install

    npm i eslint-import-resolver-typescript

    DownloadsWeekly Downloads

    3,210,338

    Version

    3.2.0

    License

    ISC

    Unpacked Size

    44.4 kB

    Total Files

    11

    Last publish

    Collaborators

    • alexgorbatchev
    • jounqin
    • bradzacher