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

Get Angular 2 .ts files instead of .d.ts files

本文关键字:ts 文件 Angular 获取      更新时间:2023-09-26

当我使用angular2代码时,我经常需要看到类的实现,比如Router类。

如果我点击IDE WebStorm中的Router类型,例如在另一个类的构造函数中

export class myClass {
    constructor(private router: Router) {}
    // ...
}

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

当您通过angular2 Quickstart中建议的标准包.json从github获取angular2时,原始.ts文件不包含在node_modules文件夹结构中。目前,我必须在github官方回购中查找原始代码。

有什么想法可以把.ts文件放进我的node_modules/@angular文件夹而不是.d.ts文件吗?

遗憾的是,这是不可能的,因为不存在TS文件。即使添加了它们,也不可能,因为导入的是始终指向定义文件的真实角度路径。除此之外,项目的文件结构与导入字符串文字的结构不相关。

一些背景和更多信息

NPM包不包括.ts文件,这是angular团队设计的。直到不久前,.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很可能无法工作。

使用不同方法的解决方案

然而,如果您调试应用程序,您会注意到在控制台的源代码视图中会看到实际的angular core .ts文件,这是因为NPM包附带了包含整个TS源代码的源映射文件。他们在那儿干得不错。

这就是我用来深入挖掘棱角的东西,它非常有效,我从中得到了很多。它没有Goto Declaration那么好,但它有点。。。IMO当你通过代码时也更容易理解。。。