angular - 无法使用 tsconfig.json 缩短导入路径

标签 angular typescript ionic-framework ecmascript-6 single-page-application

我在 tsconfig.json 中定义的路径不起作用。

我用 Ionic 4 开始了一个项目,希望避免导入中的难看路径。我找到了有关修改 tsconfig.json 的信息,我这样做了。我已经找到了这些答案: How to use paths in tsconfig.json?Cannot resolve tsconfig paths

所以我的 tsconfig.json 看起来像这样:

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./src",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "module": "es2015",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "importHelpers": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2018",
      "dom"
    ],
    "paths": {
      "@services/*": ["app/services/*"],
      "@data/*": ["app/data/*"]
    }
  }
}

然后我访问了一个在我的服务中指定用户的类:

import { User } from '@data/User';

用户类如下所示:

export class User {
   ...
}

我的项目结构是这样的:

enter image description here

我没有发现我的代码与我共享的不同解决方案之间有任何区别。显示的错误是:

[ng] ERROR in src/app/services/profile.service.ts(3,22): error TS2307: Cannot find module '@data/User'. [ng]

我做错了什么?

最佳答案

你应该像这样改变你的配置

"paths": {
  "@services/*": ["src/app/services/*"],
  "@data/*": ["src/app/data/*"]
}

因为路径应该从src文件夹开始

然后你可以像这样导入

import { User } from '@data/User';

关于angular - 无法使用 tsconfig.json 缩短导入路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57198712/

相关文章:

javascript - 如何确保扩展类必须在 TypeScript 中设置属性值?

Angular 9 取消订阅 NavigationEnd

typescript - 为什么 ES2015 模块语法优于自定义 TypeScript 命名空间?

javascript - 如何在 ionic 中使用 state.go?

css - float 在 List-CSS 中不起作用

node.js - Angular4 + Universal + ng-bootstrap 出现 "Unexpected token import"错误

css - 如何在不同的设备上改变整体风格?

ionic-framework - ionic 标签的最佳实践

Angular 2 路由器,错误 : Cannot activate an already activated outlet

Angular 4 : unable to read headers from response - not a CORS issue