2014-03-02 413 views
0

我正在通過DurandalJS.com網站上的Durandal「入門」指南,除了我正在嘗試使用TypeScript。最後的演示(在雷尼爾山之一)有這樣的代碼模塊:當我運行在瀏覽器的代碼使用TypeScript中已聲明模塊的類型

define(function (require) { 
    var http = require('plugins/http'), 
     ko = require('knockout'); 
    //other stuff 
} 

一切工作正常,但我想看看我是否能得到打字稿要注意的類型。我進口迪朗達爾,淘汰賽,jQuery和RequireJS的NuGet包從DefinitelyTyped,我能得到這樣做

ko : KnockoutStatic = require('knockout'); 

此作品類型劫變量,因爲KnockoutStatic是在Knockout.d.ts文件中聲明的接口。然而,在durandal.d.ts文件,「插件/ HTTP」聲明這樣沒有命名接口:

declare module 'plugins/http' { /*stuff*/ } 

我有三個問題:

  • 如若/是有辦法獲得TypeScript知道類型爲自動和http自動基於調用要求與模塊名稱內?
  • 有沒有一種方法可以用durandal.d.ts文件結構化的方式(模塊vs接口)顯式地輸入我的http變量。
  • 如果不是,那麼設置durandal.d.ts文件以允許http變量的強類型的正確方法是什麼 - 只需聲明一個接口而不是模塊?

回答

2

答案全部三個問題:

import http = require('plugins/http'); 

另外,你不應該有一本手冊「定義」,因爲打字稿會生成它。這些被稱爲外部模塊。

PS:我有一個關於打字稿模塊系統http://youtube.com/watch?hd=1&v=KDrWLMUY0R0

+1

巴斯嗨視頻,應該有進口HTTP =後需要? –

+1

@JohnnyReilly當然,謝謝:) – basarat

相關問題