我在我的文件app.spec.ts中有这个导入:

import app from './app';

是什么导致了这个Typescript错误

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

/应用程序。ts确实存在,但我没有将.ts文件编译成.js文件。一旦我把.ts文件编译成.js文件,错误就消失了。

然而,由于eslint应该与typescript一起工作,它应该用.ts而不是.js来解析模块。

我还在eslint配置文件中添加了typescript信息:

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

我如何配置eslint在这样一种方式,它试图解决模块与.ts而不是.js?

编辑# 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;

当前回答

就我而言,我只是需要改变

import { SetOptional, SetRequired } from 'type-fest';

to

import type { SetOptional, SetRequired } from 'type-fest';

其他回答

这对我来说很有用:

.eslintrc.js

{
    ...
    settings: {
        ...
        'import/resolver': {
            node: {
                extensions: ['.js', '.jsx', '.ts', '.tsx'],
                moduleDirectory: ['node_modules', 'src/'],
            },
        },
    }
}

这是唯一对我有效的解决办法。

首先,你需要安装这个包:

yarn add -D eslint-import-resolver-typescript

然后将其添加到.eslintrc文件中,以便它可以从tsconfig加载别名设置。json到ESLint:

{
  "settings": {
    "import/resolver": {
      "typescript": {}
    },
  },
}

以防万一,如果有人需要支持子目录以及。例如,它支持

src/components/输入=> components/输入 src/火灾/外部请求=>外接/请求 设置:= 进口- resolver: { “节点”:{ “路”:[“src”,“src/ fire”], “分机”:(“js”)jsx”、“。ts”、“tsx。”] 的 的 的

这是eslint ^6.1.0的工作示例

如果你已经更新了你的.eslintrc和tsconfig。Json文件的建议在其他答案,你仍然有问题-重新启动vscode。

在我的例子中,我必须删除eslint缓存,然后它就像魔法一样工作了。(我们的纱线脚本是

"lint:eslint": "eslint。"——cache——cache-location '../../eslintcache/'——format stylish"

.)