eslint-import-resolver-ts
This plugin adds TypeScript support to eslint-plugin-import
.
This means you can:
import
/require
files with extension.ts
/.tsx
!- Use
paths
defined intsconfig.json
. - Prefer resolve
@types/*
definitions over plain.js
. - Multiple tsconfigs support just like normal.
TOC
Installation
# npm npm i -D eslint-plugin-import @typescript-eslint/parser eslint-import-resolver-ts # yarn yarn add -D eslint-plugin-import @typescript-eslint/parser eslint-import-resolver-ts
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": { // use <root>/tsconfig.json "ts": { "alwaysTryTypes": true // always try to resolve types under `<roo/>@types` directory even it doesn't contain any source code, like `@types/unist` }, // use <root>/path/to/folder/tsconfig.json "ts": { "directory": "./path/to/folder" }, // Multiple tsconfigs (Useful for monorepos) // use a glob pattern "ts": { "directory": "./packages/*/tsconfig.json" }, // use an array "ts": { "directory": [ "./packages/module-a/tsconfig.json", "./packages/module-b/tsconfig.json" ] }, // use an array of glob patterns "ts": { "directory": [ "./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.