2015-08-20 81 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

太好了,谢谢。相当无用的错误信息。 –