I've set up path aliasing in typescript's .tsconfig so my imports look cleaner.
In my code when I try and import my interface like this
import { ApiResponse } from '@api'; eslint complains: Unable to resolve path to module '@api' However, intelisense in vscode seems fine. Its able to give code prediction and "Jump to declaration" which is a clue that my .tsconfig is set up correctly but eslint is somehow misconfigured.
In my tsconfig.json, I've set up path aliasing like so:
{ "compilerOptions": { "moduleResolution": "node", "baseUrl": "./src", "paths": { "@api": ["./types/api"] }, } } My ./src/types/api.ts looks like this:
// 3rd party API response object export interface ApiResponse { .... } Finally, my .eslintrc.json looks like this:
{ "env": { "node": true }, "globals": { "console": true }, "plugins": ["@typescript-eslint", "prettier"], "parser": "@typescript-eslint/parser", "settings": { "import/extensions": [".js", ".ts"], "import/parsers": { "@typescript-eslint/parser": [".ts"] }, "import/resolver": { "node": { "extensions": [".js", ".ts"] } } } } Any idea what I may be doing wrong?
To support the tsconfig baseUrl and paths, you need the package eslint-import-resolver-typescript.
# install the basics npm i -D @typescript-eslint/parser @typescript-eslint/eslint-plugin # support tsconfig baseUrl and paths npm i -D eslint-plugin-import eslint-import-resolver-typescript { "settings": { "import/resolver": { "typescript": {} } }, "parser": "@typescript-eslint/parser", "parserOptions": { "project": "./tsconfig.json", "tsconfigRootDir": "./" }, "plugins": [ "@typescript-eslint", "import" ], "extends": [ "plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended-requiring-type-checking" ] }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With