Angular2 - 根相对导入

2024-05-10

我在 angular2/typescript 中导入时遇到问题。我想使用一些像“app/components/calendar”这样的根目录的导入,而我能够使用的唯一方法是:

//app/views/order/order-view.ts
import {Calendar} from '../../components/calendar 

其中日历定义如下:

//app/components/calendar.ts
export class Calendar {
}

层次结构越低,情况显然会变得更糟,最深的是“../../..”,但它仍然非常糟糕和脆弱。有什么方法可以使用相对于项目根目录的路径吗?

我在 Visual Studio 中工作,相对导入似乎是使 VS 能够识别这些导入的唯一方法。y


Answer

从 TypeScript 2.0 开始,您可以设置 tsconfig.json 属性baseUrl如下:

{
  "compilerOptions": {
    "baseUrl": "app"
}

然后,您可以使用所需的方式导入组件,例如:

import { Calendar } from 'components/calendar';

Appendix

后备路径解析

一个重要的考虑因素是指定baseUrl选项导致 TypeScript 编译器:

  1. 查找有关 baseUrl 的路径
  2. 解析失败(未找到模块)时,查找有关以下内容的路径moduleResolution option

SystemJS

由于 SystemJS 在 Angular 开发阶段大量使用,因此请务必进行相应的配置systemjs.config.js,以便它正确解析路径。


来源和更多详细信息:https://github.com/Microsoft/TypeScript/issues/5039 https://github.com/Microsoft/TypeScript/issues/5039

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular2 - 根相对导入 的相关文章

随机推荐