获取Angular 2 .ts文件而不是.d.ts文件

时间:2016-07-21 19:54:18

标签: javascript angular webstorm

当我使用angular2代码时,我经常需要查看某个类的实现,让我们说Router类。

如果我点击IDE WebStorm中的Router类型,e。 G。在另一个类

的构造函数中
export class myClass {
    constructor(private router: Router) {}
    // ...
}

我的IDE将我带到router.d.ts文件夹中的TypeScript定义文件node_modules。我想要的是带我到路由器类的实现的原始router.ts文件,而不仅仅是它的定义

当您通过Angular2快速入门中建议的standard package.json从github获取angular2时,.ts文件夹结构中不包含原始node_modules文件。目前,我必须在the official github repo中查找原始代码。

如何将.ts文件放入我的node_modules/@angular文件夹而不是.d.ts文件?

1 个答案:

答案 0 :(得分:4)

可悲的是,由于不存在任何TS文件,因此无法实现。即使你添加它们仍然不可能,因为你导入了始终指向定义文件的真正的角度路径。最重要的是,项目的文件结构与导入字符串文字的结构无关。

一些背景和更多信息

NPM包不包含.ts个文件,这是由角度团队设计的。直到一段时间以前,.ts文件确实随NPM包一起提供。

删除它们的原因是禁止用户访问私有类和@internal以及私有API的滥用,这些API是API中的公共方法/属性,不应该是公开的,但必须是其他角度内部类可以使用它们。

我们曾经看过很多代码样本,比如import { PromiseCompleter } from 'angular2/src/facade/lang';(在RC0之前),但是当项目结构在RC0中有一个很大的结构重构时,这就改变了。这种滥用是广泛的,它是坏的,非常糟糕......对于用户和Angular PR。

Angular项目具有复杂而强大的构建过程,其中所有API都使用限制曝光的自动过程从.ts文件移动到d.ts个文件。 (public_api_guard

最终结果仅为d.ts个文件。

也无法克隆git repo并使用它,因为文件结构的方式也不同,所以导入必须改变。最重要的是没有构建Angular,很可能不会工作。

使用不同方法的解决方案

但是,如果您调试应用程序,您会注意到您在控制台的源视图中到达了实际的角度核心.ts文件,这是因为NPM软件包附带了包含整个TS源代码的源映射文件。他们在那里做的很好的技巧。

这是我用来深入挖掘角度的东西,它的效果非常好,我从中得到了很多。 它不如Goto Declaration那么好,但它有点...... 当您单步执行代码时,IMO也更容易理解......