如何让我的 Ionic 4 Typescript 路径工作?

How can I get my Ionic 4 Typescript paths to work?

我正在使用 Typescript 3.1 将我的 Ionic 3 应用程序升级到 Ionic 4,但是我 运行遇到了 Typescript 路径的问题。

我的 tsconfig.json 中有以下内容:

"paths": {
    "@models": [ "src/models/index" ],
    "@services": [ "src/services/index" ],
    "@shared": [ "src/shared/index" ],
    "@app/*": [ "src/app/*" ],
    "@models/*": [ "src/models/*" ],
    "@services/*": [ "src/services/*" ],
    "@shared/*": [ "src/shared/*" ]
},

这是我的 src/tsconfig.app.json:

"paths": {
    "@models": [ "models/index" ],
    "@services": [ "services/index" ],
    "@shared": [ "shared/index" ],
    "@app/*": [ "app/*" ],
    "@models/*": [ "models/*" ],
    "@services/*": [ "services/*" ],
    "@shared/*": [ "shared/*" ]
},

Visual Studio 可以很好地检测文件并且不会给我任何类型的错误,但是当我 运行 ionic serve 时,它找不到任何这些文件。我收到如下错误:

[ng] src/models/jobs/job.model.ts(1,33): error TS2307: 
    Cannot find module '@models/customers/customer.model'.

对于行:

import { ICustomerModel } from "@models/customers/customer.model";

如何让 ionic serve 遵循我的 Typescript 路径?

我找到了答案。

我需要添加

"baseUrl": ".",

到编译器选项。我添加这个之后,它起作用了。

完整 tsconfig.app.json:

{
    "extends": "../tsconfig.json",
    "compilerOptions": {
        "baseUrl": ".",
        "paths": {
            "@models": [ "models/index" ],
            "@services": [ "services/index" ],
            "@shared": [ "shared/index" ],
            "@app/*": [ "app/*" ],
            "@models/*": [ "models/*" ],
            "@services/*": [ "services/*" ],
            "@shared/*": [ "shared/*" ]
        },
        "outDir": "../out-tsc/app",
        "module": "es6",
        "types": [ "node" ]
    },
    "exclude": []
}