Node.js Typescript中RequireJs和NodeJS定义之间的冲突

Node.js Typescript中RequireJs和NodeJS定义之间的冲突,node.js,requirejs,typescript,Node.js,Requirejs,Typescript,我从“明确类型化”中获得了Typescript RequireJS定义,它的环境声明为Require,与NodeJs命令“Require”冲突。以下是声明和错误: 声明: declare var require: Require; 错误: C:/.../require.d.ts(320,13): error TS2134: Subsequent variable declarations must have the same type. Variable 'require' must be

我从“明确类型化”中获得了Typescript RequireJS定义,它的环境声明为Require,与NodeJs命令“Require”冲突。以下是声明和错误:

声明:

declare var require: Require;
错误:

C:/.../require.d.ts(320,13): error TS2134: Subsequent variable declarations must have the same type.  Variable 'require' must be of type '{ resolve(id: string): string; cache: any; extensions: any; main: any; (id: string): any; }', but here has type 'Require'.

这是真的。我所要做的就是简单地使用declare-var-require:any,而不是引用nodejs或RequireJS

如果您能在此处打开bug,将不胜感激:


之所以很棘手,是因为在同一个环境中实际上并没有节点和RequireJS。这是我们需要支持的编译时重用问题。

我遇到了这个问题,并将其从typings.json中删除

"require": "registry:dt/require#2.1.20+20160316155526"

不确定它是如何进入我的项目的,但我没有使用require客户端。

我在尝试集成到我的应用程序时遇到了这个问题。解决方法非常简单

  • 插入这一行
    window.requirejs=window.require
    在html中包含
    require.js
    loader.js
    之后

  • 然后在要使用requirejs的.ts文件中,将所有
    require
    替换为
    requirejs
    。此别名已在中定义

  • 完成了


  • 需要明确的是,您在Node中使用的是RequireJS?RequireJS在客户端,NodeJS在服务器端。但是有一个通用的typescript头文件,所有定义文件都引用它。我这样做是因为它们之间有大量的依赖关系。谢谢。还有一个问题,你可以帮我解决。不幸的是,我还没有github帐户,所以我不能提交票据。@basarat没有。他们没有运行浏览器。其中一些根本不需要浏览器环境就可以运行。其中一些是使用jsdom运行的,jsdom不是浏览器,而是模拟DOM环境。这将只解决关于require关键字的问题。不是最初的问题。我是阿贝尔通过评论requirejs索引d.ts中的行来解决这个问题的。在此处保留评论,以防有人在此处发现此评论:)