2014-03-02 208 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

相关问题