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

我从Definitely Typed获得了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。

如果你可以在这里打开一个错误将不胜感激: https : //github.com/borisyankov/DefinitelyTyped

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

我试图在我的应用程序中集成摩纳哥编辑器时遇到了这个问题。 解决方法非常简单。

  1. 在html中包含require.jsloader.js后插入这行<script>window.requirejs = window.require;</script>

  2. 然后在你想要使用requirejs的.ts文件中,用requirejsreplace所有require 。 这个别名已经在require.d.ts定义了

  3. 完成!

我有这个问题,并从typings.json中删除

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

不知道它是如何进入我的项目,但我不使用需要客户端。