2015-05-07 54 views
0

所以我决定是时候学习打字稿了。我来自.net背景,并且非常精通NodeJS,并且想要合并这两者。Typescript hinting + webstorm + nodejs + require

我已经击中了一个试图用“require”d模块使用打字稿的树桩。我认为一个代码示例将更好地说明

///<reference path="tsd/q.d.ts" /> 
var q = require('q'); //<--- How do I set the type of this using the reference path above? 
function test() { 
    var deferred = q.defer(); 
    deferred.resolve(); 
    return deferred.promise; 
} 

我知道导入,但似乎需要其他文件在打字稿?或者,我是否完全误解了打字稿可以做什么?

+0

它看起来像迄今为止的解决方案是,我需要使用:import q = require('q');这很好地结合起来。我还需要广告 - 模块commonjs参数到我的webstorm文件观察器,让它编译 –

回答

0

您还必须设置--modulecommonjs及用途:

import q = require('q') 

您还需要q(和nodejs)的DefinitelyTyped定义文件包含在构建。以您所做的方式引用它是可能的,但如果您使用WebStorm,Visual Studio或Atom等内置集成工具,则项目中的所有文件都将自动包含,并且引用变为非必需。

打字稿1.5

从1.5+你将有一个tsconfig文件生成顺序和夹杂物的目的,如在https://github.com/Microsoft/TypeScript/wiki/tsconfig.json显示。根据需要设置包含类型的项目文件,而且无需手动参考处的文件

+0

tsconfig的目的不是'.d.ts'引用,如果你在'files'列表中指定它们,那么这些是唯一的文件将被编译,我建议不要使用它来处理外部引用。这就是说,如果你使用像tsd这样的工具,它会处理你所有的参考资料,而你只需要1个参考资料给外部模块。 https://github.com/DefinitelyTyped/tsd – Brocco

+0

列出的文件与其他文件一起上下文编译。它的工作原理,你不会需要愚蠢的引用。那基本上是一个项目。 –

+0

没错,但任何时候你添加任何文件到'project',那么你将需要更新tsconfig.json我只是希望它根据目录结构自动拾取我的文件,这减少了在提交/检入代码时的冲突而且当我添加一个与节点约定更加和谐的文件时,我还记得一个小步骤 – Brocco