为什么 VSCode 不获取 tsconfig 中的路径别名?

blu*_*e13 17 typescript tsconfig visual-studio-code vscode-jsconfig

我有一个jsconfig.json,我用一个替换了tsconfig.json。替换后,VSCode 不会获取路径别名并报告导入错误:

例子:

Cannot find module '@Components/Title' or its corresponding type declarations.ts(2307)
Run Code Online (Sandbox Code Playgroud)

jsconfig.json

// https://code.visualstudio.com/docs/languages/jsconfig

{
    "compilerOptions": {
        "baseUrl": ".",
        "paths": {
            "@Components/*": ["./src/components/*"],
            "@Modules/*": ["./src/modules/*"],
            "@Styles/*": ["./src/styles/*"],
            "@Content/*": ["./src/content/*"],
            "@Apps/*": ["./src/apps/*"]
        }
    },
    //Add any build/compiled folders here to stop vscode searching those
    "exclude": ["node_modules", "build"]
}
Run Code Online (Sandbox Code Playgroud)

tsconfig.json

// https://code.visualstudio.com/docs/languages/jsconfig
{
    "compilerOptions": {
        "baseUrl": ".",
        "paths": {
            "@Components/*": ["./src/components/*"],
            "@Modules/*": ["./src/modules/*"],
            "@Styles/*": ["./src/styles/*"],
            "@Content/*": ["./src/content/*"],
            "@Apps/*": ["./src/apps/*"]
        },
        "target": "es5",
        "lib": ["dom", "dom.iterable", "esnext"],
        "allowJs": true,
        "skipLibCheck": true,
        "strict": false,
        "forceConsistentCasingInFileNames": true,
        "noEmit": true,
        "incremental": true,
        "esModuleInterop": true,
        "module": "esnext",
        "moduleResolution": "node",
        "resolveJsonModule": true,
        "isolatedModules": true,
        "jsx": "preserve"
    },
    "exclude": ["node_modules", "build"],
    "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"]
}
Run Code Online (Sandbox Code Playgroud)

更新 1:我只对以.js. 如果我将它们重命名为.ts一切正常。奇怪的是,如果我将文件重命名为.js并重新启动 VSCode,错误将不再显示在文件中。

Jef*_*ell 25

tsconfig 配置仅适用于“include”选项匹配的文件,而不是“exclude”选项排除的文件。您的“include”选项仅匹配 .ts 和 .tsx 文件,但不匹配 .js 文件

将“**/*.js”添加到包含的 glob 列表中,它应该可以工作。

  • 我已将此模式添加到 tsconfig.spec.json 中,并且没有任何更改。会出现什么问题? (4认同)