2016-11-24 39 views
1

這是我迄今所做的:使用moment.js(或矩timezone.js)

  • 安裝和的NodeJS它玩法:node命令纔可
  • 安裝打字稿用npmnpm install typescript -g
  • 現在我能夠用tsc命令創建.ts文件,使用打字稿語法和編譯文件

好吧,從現在開始,一切正常。我正在做的是將Java庫轉換爲TypeScript。但是我面臨一個問題:Java庫使用的是Calendar對象,我需要TypeScript中的同一種對象。

我已經搜索了一下,找到了moment.js。我想將該庫導入到我的TypeScript文件中。

問題:我該怎麼做?我環顧四周,在計算器上,但在每一個崗位,我發現有些東西讓我覺得這不會是我的解決方案,如:

  • 安裝typings/tsd:我讀過,現在moment.js現在有一個定義文件(對不起,也許它不是很好的術語,但它有一個moment.d.ts文件)
  • 檢查random.config.json文件:我沒有這樣的配置文件(不是在我猜中的NodeJs中,在TypeScript中我有tsconfig.json文件,並試圖包含moment.d.ts文件,但我無法將其導入到TypeScript>"cannot find module moment"
  • npm安裝時刻:我已經完成了,但我沒有找到如何在我的項目中包含moment.d.ts文件。

等等...

我想知道我失蹤,如何納入我的.ts文件moment才能使用它。我可能缺乏關於這些模塊組織的一些知識,所以每個解釋都會受到歡迎。

  • 版本的NodeJS:7.1.0
  • 打字稿版本:2.0.10

編輯

挖了一下後,我發現我可以編譯使用tsc Test.ts --traceResolution.ts文件查看導入是否已正確解析。結果:他們是!現在真正的問題是我的IDE(Visual Studio)不知道moment

enter image description here

的事情是,我已手動創建的每個.ts文件,創建一個新的文件,更改擴展名,並在Visual Studio中打開它。也許這是問題?我只是將Visual Studio用作帶有IntelliSense的文本編輯器。爲了讓Visual Studio知道導入來自NodeJS,我必須做些什麼嗎?

+1

有一個(http://momentjs.com) –

+0

這是我做的,但如前所述,當我想導入'時刻',我得到了一個錯誤'找不到模塊「時刻」。我也嘗試設置編譯器選項,但我得到了同樣的錯誤。 – Jacks

回答

0
  1. 您不必安裝moment.js接口,因爲它提供了它自己的類型定義。
  2. 在打字稿中輸入moment.js(你是對的)。

    import * from'moment';

  3. 在打字稿使用moment.js

    VAR momentObject:moment.Moment

    momentObject.something()(例如:momentObject.add(..))

+0

我終於可以在我的解決方案中使用moment.js,但我不得不做一些更改。我所有的班級都將他們放入一個「命名空間」中,但後來我無法導入「時刻」。我只能將'namespace MyNamespace {export class MyClass {...}}'改成'export class MyClass {...}'。你知道爲什麼嗎 ?然後我會讓你寫一個我很樂意接受的答案,謝謝 – Jacks