将typescript定义文件与nodejs混合需要内部模块中的多个文件

时间:2013-11-25 16:38:04

标签: node.js knockout.js typescript npm definitelytyped

将nodejs模块(require)与typescript定义文件(d.ts)多次混合到模块中的文件上是否存在任何已知问题?

我的情况是我每个文件夹都有一个模块命名空间(就像我在C#中那样),然后我基本上通过tsc将它们全部编译为输出的my-module.js。但是我不断得到像Could not find type HTMLElement这样的奇怪错误,但是很多人都指出tsc默认包含typescript lib文件,其中包含所有这些类型。

我注意到有些人在多个文件中包含相同的d.ts文件时会出现奇数错误,这些文件都是使用--out标志编译而成的文件,这可能导致我的问题吗?

我的用法示例如下:

///<reference path="path/to/knockout.d.ts" />
import ko = require("knockout");

然后将其放入每个需要敲除js的文件中,这是我正在尝试编译的模块中的至少10个文件。它只是突然爆炸说knockout.d.ts找不到HTMLElemet,Element,Document等类型。

1 个答案:

答案 0 :(得分:0)

如果您正在使用外部模块(如果您有顶级“导入”,则如上所示),则不能使用--out开关组合多个源文件。对于外部模块,一个源文件=一个模块是一个限制。如果源不在外部模块中(即有助于'全局'范围),则可以使用--out将输入源与一个输出JavaScript文件组合。

我不知道“找不到HTMLElement”的问题。如果你能提供一个repro(并概述你正在使用哪个版本),我可以看看。