0

我正在使用 Typescript (4.1.3),并开始在 tsconfig.json 中使用自定义路径。从那以后,当我导入任何 .ts 文件时,如果我不使用整个路径,我就会收到错误消息:

错误:(138, 33) TS2307: 找不到模块 'pages/foo/bar' 或其对应的类型声明。

为了解决这个问题,我必须添加前缀'src/',所以我得到'src/pages/foo/bar'。项目本身运行良好,即使出现此 TS 错误。

这是我的 tsconfig.json 文件

{
"compilerOptions": {
    "allowJs": true,
    "sourceMap": true,
    "target": "es6",
    "strict": true,
    "declaration": false,
    "noImplicitAny": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "module": "esnext",
    "moduleResolution": "node",
    "strictNullChecks": false,
    "baseUrl": ".",
    "paths": {
        "foo": [
            "bar.js"
        ]
    },
    "types": [
        "quasar",
        "node",
        "cypress"
    ],
    "lib": [
        "es2018",
        "dom"
    ]
},
"exclude": [
    "node_modules"
],
"extends": "@quasar/app/tsconfig-preset"

}

4

3 回答 3

3

compilerOptions.baseUrl以语句中指定的路径为前缀,import以创建对于文件位置的路径tsconfig.json

在您的情况下,与文件相关的模块 bar.js 的路径tsconfig.json是 src/pages/foo/bar。因此,您可以在语句./src中指定compilerOptions.baseUrl或指定完整路径。import

于 2021-01-29T19:36:45.843 回答
1

这似乎是您的配置问题baseUrl:".",这意味着 js 模块解析发生在当前目录中,这就是您的导入投诉添加 src 目录的原因。

确保将此配置指向 src 目录,然后所有导入解析都从该目录进行。例子:baseUrl:"./src"

更多细节:https ://www.typescriptlang.org/tsconfig#baseUrl

于 2021-01-29T18:36:14.850 回答
0

只需将“typescript-path-fix”添加到您的任务运行器管道中或在编译代码之前调用它

使用此软件包解决您的问题: https ://www.npmjs.com/package/typescript-path-fix

于 2021-09-25T00:45:45.253 回答