我在 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 编译器:
- 查找有关 baseUrl 的路径
- 解析失败(未找到模块)时,查找有关以下内容的路径
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(使用前将#替换为@)