获取Angular 2.ts文件,而不是.d.ts文件
Get Angular 2 .ts files instead of .d.ts files
当我使用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当你通过代码时也更容易理解。。。
- 使用index.ts文件导出类会导致注入的构造函数中未定义
- 如何创建具有多个可能冲突的要求的.d.ts文件
- TypeScript 1.8,多个.ts文件中的单个文件-应用程序结构
- Typescript从其他ts文件扩展类
- Typescript 0.9.1.1模块被拆分为几个.ts文件
- Typescirpt:XMLHttpRequest未在.ts文件中定义
- 有人可以对.d.ts文件的用途以及如何将该文件用于jQuery进行高级解释吗?
- TypeScript 编译器在 d.ts 文件 (v1.0 - v1.3) 中生成 JavaScript
- 在打字稿 0.9.1.1 中,在 jquery.d.ts 文件中声明模块“jquery” { export = $; }
- 配置WebStorm/PhpStorm将.ts文件编译为.js文件;js”;文件夹
- Angular 2-是否可以将我的路由存储在另一个文件中,并将它们导入到app.ts文件中(因为随着时间的推移,路由会不
- 从.d.ts文件导入Typescript
- Karma-coverage在JS文件中检查测试覆盖率,而不是Angular 2中的TS文件
- 如何创建导出现有模块的.d.ts文件
- 生成单独的.js文件,但合并.d.在Visual Studio中使用Typescript编写ts文件
- 如何拆分大型typescript index.d.ts文件
- 一个简单的例子的结构和应用.ts文件
- Atom-typescript会更新.ts文件,但HTML中的更改不会在保存时更新
- 如何停止缺少d.ts文件的编译错误
- 获取Angular 2.ts文件,而不是.d.ts文件