1

将 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 等类型。

4

1 回答 1

0

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

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

于 2013-11-26T20:59:36.093 回答