2015-08-20 111 views
0

我在VS2015中使用TypeScript,並嘗試在某些其他模塊中導入淘汰模塊。 Knockout安裝到「/ knockout」以外的路徑,實際上,我所有的「庫」都安裝到「/ app/lib」。由於不一定匹配模塊名稱的文件夾名稱的結果,我定義我main.ts如下:TypeScript,RequireJS和自定義RequireJS模塊路徑

requirejs.config({ 
    baseUrl: "/app", 
    paths: { 
     "text"  : "lib/requirejs-text/text", 
     "durandal" : "lib/durandal/js", 
     "plugins" : "lib/durandal/js/plugins", 
     "transitions": "lib/durandal/js/transitions", 
     "knockout" : "lib/knockout.js/knockout", 
     "jquery"  : "lib/jquery/jquery", 
     "bootstrap" : "lib/bootstrap-sass-official/javascript/bootstrap" 
    } 
}); 

所以我在運行的應用程序可以找到淘汰賽只使用var ko = require("knockout")

然而,在Visual Studio的設計時,我得到一個「紅色波浪」在我require()電話:

enter image description here

我相信這是因爲VS正試圖使用​​路徑,而不是我的自定義路徑配置來尋找Knockout。那麼怎麼樣,我可以告訴VS我的自定義路徑配置,所以這個工作?目前生成的JavaScript是:

var receiveDeliveryViewModel = (function() { 
    function receiveDeliveryViewModel() { 
     this.deliveryReference = (""); 
    } 
    return receiveDeliveryViewModel; 
})(); 

正如你所看到的不引用Knockout.js。

非常感謝提前。

回答

1

您需要添加type definition淘汰賽:

這將提供類型信息淘汰賽,也解決了你所看到的導入錯誤。

也可通過NuGet(其他包管理器可用)!

+0

太好了,謝謝。相當無用的錯誤信息。 –