2013-09-01 48 views
4

我使用nuget從https://github.com/borisyankov/DefinitelyTyped導入絕大部分DefinitelyTyped模塊。DefinitelyTyped d.ts文件和使用TypeScript的Amd模塊

我想知道是否有什麼我錯過了,因爲我發現他們都失去了AMD的支持。

在大多數模塊我加入這個自己:

declare module "toastr" { 
    export = Toastr; 
} 
declare module "knockout.validation" { 
    export = KnockoutValidationStatic; 
} 
declare module "knockoutmapping" { 
    export = KnockoutMapping; 
} 
declare module "jquery" { 
    export = $; 
} 

做這件事時,我可以做到以下幾點:

import $ = require('jquery'); 
import toastr = require('toastr'); 

,並正確生成我的AMD模塊。

define(["require", "exports", 'toastr'], function(require, exports, __toastr__) { 

} 

我想知道,如果有一些其他的方式做到這一點,因爲我發現在d.ts缺少大部分庫定義的AMD出口。

回答

0

某些定義確實包含此部分,例如下劃線。他們中許多人不這樣做的原因是因爲導入的名稱取決於您如何配置requirejs以及您在配置中選擇的短路徑名。

+1

帶jquery。我查看了源代碼,他們在名稱jquery下進行配置。我推出了更新github,它也被接受了,所以我想它是正確的做法然後:)謝謝你的回答。 –

+0

獎勵問題:我是否需要在同一個d.ts文件中定義外部模塊,因爲您認爲這取決於我的本地配置,所以我可以創建一個包含所有這些本地短名稱的myconfiguration.d.ts? –

+0

「本地配置」指的是requirejs的路徑配置:http://requirejs.org/docs/api.html#config-paths例如看看http://requirejs.org/docs/api.html#pathsfallbacks – basarat

相關問題