2016-07-21 36 views
4

當我使用angular2代碼時,我經常需要看到實現的一個類,比如說Router類。獲取Angular 2.ts文件而不是.d.ts文件

如果我點擊我的IDE WebStorm中的Router類型, G。另一個類的構造函數中

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

我的IDE帶我到打字稿定義文件router.d.tsnode_modules文件夾內。我想要的是帶我到路由器類的實現的原始router.ts文件,而不僅僅是它的定義

當您從github通過Angular2快速入門中建議的standard package.json獲取angular2時,原始.ts文件不包含在node_modules文件夾結構中。目前,我必須查詢the official github repo中的原始代碼。

任何想法如何讓.ts文件進入我的node_modules/@angular文件夾而不是.d.ts文件?

回答

3

不幸的是,這是不可能的,因爲沒有TS文件存在。即使添加它們也不可能,因爲您導入了始終指向定義文件的實際角度路徑。最重要的是,項目的文件結構與導入字符串文字的結構不相關。

一些背景和更多信息

故宮包不包括.ts文件,這是從球隊的角度設計。直到前一段時間,.ts文件確實與NPM軟件包一起提供。

刪除它們的原因是禁止訪問私有類的用戶濫用權限,@internal和私有API是API中公共方法/屬性的私有API,它們不應該是公共方法,但必須使其他角度內部類可以使用它們。

我們曾經看到很多代碼樣本中,在那裏做這樣的事情import { PromiseCompleter } from 'angular2/src/facade/lang';(RC0之前),但是當項目結構曾在RC0一個大結構重構這個改變。這種濫用是廣泛的,它是壞的,非常糟糕...對於用戶和Angular公關。

Angular項目具有複雜而強大的構建過程,其中使用自動化過程來限制曝光,將所有API從.ts文件移動到d.ts文件中。 (public_api_guard

最終結果僅爲d.ts文件。

也不可能克隆git repo並使用它,因爲文件結構又是不同的,所以導入必須改變。最重要的是,沒有構建Angular的意願,很可能不起作用。

使用不同的方法

但是,如果您調試應用程序,你發現,你在控制檯的源視圖達到實際角度核心.ts文件的解決方案,這是因爲故宮包帶有源映射文件包括整個TS源代碼。他們在那裏做的好戲。

這是我用來深入挖掘角度,它工作得很好,我從中得到很多。 它不是像你一樣Goto Declaration但它的東西...... IMO它也更容易,當你通過代碼一步瞭解...

+0

,謝謝,我已經試過在瀏覽器的調試,但它仍然顯示'.js'文件而不是'ts'。它還在爲你工作嗎? –

相關問題