1. ホーム
  2. typescript

[解決済み] eslintをtypescriptで使用する - モジュールへのパスを解決できない

2022-02-28 18:31:05

質問

私のファイルには次のようなインポートがあります。 app.spec.ts :

import app from './app';

このようなTypescriptのエラーが発生します。

2:17  error  Unable to resolve path to module './app'  import/no-unresolved

./app.ts は存在しますが、.ts ファイルを .js ファイルにコンパイルしていません。.tsファイルを.jsにコンパイルすると、すぐにエラーは解消されます。

しかし、eslintはtypescriptで動作することになっているので、.jsではなく.tsでモジュールを解決するはずです。

また、typescriptの情報は、私の eslint の設定ファイルです。

"parser": "@typescript-eslint/parser",
"parserOptions": {
    "project": "./tsconfig.json"
}

eslintが.jsではなく.tsでモジュールを解決しようとするように設定するにはどうしたらいいですか?

乾杯

EDIT #1

の内容 app.ts :

import bodyParser from 'body-parser';
import express from 'express';
import graphqlHTTP from 'express-graphql';
import { buildSchema } from 'graphql';

const app = express();

const schema = buildSchema(`
    type Query {
        hello: String
    }
`);
const root = { hello: () => 'Hello world!' };

app.use(bodyParser());
app.use('/graphql', graphqlHTTP({
    schema,
    rootValue: root,
    graphiql: true,
}));

export default app;

解決方法は?

ESLint モジュールのインポート解像度を設定するには、次のスニペットを .eslintrc.json 設定ファイルに記述します。

{
  "settings": {
    "import/resolver": {
      "node": {
        "extensions": [".js", ".jsx", ".ts", ".tsx"]
      }
    }
  },
  ...
}

リゾルバについての詳細情報です。 https://github.com/benmosher/eslint-plugin-import#resolvers .