我已经针对此问题搜索了堆栈溢出,但仍然不清楚为什么会发生这种情况/如何修复。
我想在我的Typescript项目中输入Node Typings所以我输入了这个命令:
npm install @types/node --save
导致:
c:/xyz/node_modules/@types/node/index.d.ts(89,13)
error TS2403: Subsequent variable declarations must have the same type.
Variable 'require' must be of type 'Require', but here has type 'NodeRequire'.
我的机器有节点版本7.0.3 已安装的类型适用于版本+ @ types / node @ 7.0.28
如果我删除卸载我的项目编译没有任何问题。
根据错误消息,好像打字内容不正确!修复它很麻烦。有什么提示吗?
中失败的代码行似乎需要绕过NodeRequire(接口)以支持Require.js?
这是TSConfig文件:
{
"compilerOptions": {
"module": "amd",
"moduleResolution": "node",
"target": "es5",
"noImplicitAny": false,
"jsx": "react",
"sourceMap": false,
"baseUrl": ".",
"paths": {
"OfficeFabric/*": [
"node_modules/office-ui-fabric-react/lib-amd/*"
]
}
}
}
我尝试了下面的排除建议,但没有成功。 Github说,如果模块解析是NODE,则无论如何都要排除胜利。
答案 0 :(得分:1)
好的,终于找到了根本原因:Node的index.d.ts文件与Require的index.d.ts文件冲突,两者都声明了一个名为require的变量。我发现它的方式是将 需要 重命名为 nrequire ,然后在项目中搜索的所有实例nrequire 即可。有很多解决方案,
重命名变量(将在npm安装或更新时消失)。
在TypeScript中,使用--types选项可以使用其中一个但不能同时使用两者。
答案 1 :(得分:0)
在工作中的项目中,我多次遇到此问题,我通过卸载现有node_modules
并安装现有node_modules
的较新版本来解决此问题。