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

时间:2014-01-27 12:12:38

标签: node.js requirejs typescript

我从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'.

2 个答案:

答案 0 :(得分:2)

这是事实。我必须做的只是使用declare var require:any而不是引用nodejs或RequireJS。

如果您可以在此处打开错误,我们将不胜感激:https://github.com/borisyankov/DefinitelyTyped

为什么它很棘手是因为你实际上并没有在同一环境中同时拥有node和RequireJS。它是我们需要支持的编译时重用的东西。

答案 1 :(得分:1)

尝试在我的应用程序中集成monaco-editor时出现此问题。解决方法非常简单。

  1. 插入此行 <script>window.requirejs = window.require;</script> 在您的HTML中加入require.jsloader.js之后。

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

  3. 中定义
  4. 完成!