Max*_*ich 4 types npm node-modules typescript reactjs
我遇到了一个令人困惑的问题,似乎TypeScript是将自己的副本安装React到自己的全局缓存中(不确定它叫什么?假设它是什么)并在我的项目中引用它。
具体来说,我最终得到了两个对 React 的引用,它位于我的项目的根目录中
C:\MyProject\node_modules\@types\react
Run Code Online (Sandbox Code Playgroud)
然后在另一个参考
C:\Users\MyUserName\AppData\Local\Microsoft\TypeScript\3.0\node_modules\@types\react
Run Code Online (Sandbox Code Playgroud)
如何控制和卸载最终出现在 TypeScriptlocal文件夹中的引用?我在我的项目中做了什么可能导致这个二级引用?
这是我的 tsconfig.json 文件的样子:
{
"compilerOptions": {
"module": "commonjs",
"moduleResolution": "node",
"target": "es5",
"sourceMap": true,
"jsx": "react",
"lib": [ "es6", "dom" ],
"removeComments": true,
"typeRoots": [
"/Types/"
]
},
"compileOnSave": false,
"exclude": [
"/node_modules/",
"/bin",
"/obj"
]
}
Run Code Online (Sandbox Code Playgroud)
这些问题的出现取决于您的 IDE,并且可以通过不同的方式解决
对于 Visual Studio 2019:
转到“选项”->“文本编辑器”->“JavaScript/TypeScript”->“项目”,然后取消选中“TypeAcquisition for Javascript”

关闭 VisualStudio
删除 C:\Users\ [用户名] \AppData\Local\Microsoft\TypeScript\ [VersionOfConcern]下的文件夹
重新加载解决方案,您的错误应该消失
VS Code 用户应参考 tsconfig.json 文件选项:
{
[...],
"typeAcquisition": {"enable": false}
}
Run Code Online (Sandbox Code Playgroud)
我没有测试 VS Code 的解决方案。
将类型声明下载到的C:\Users\MyUserName\AppData\Local\Microsoft\TypeScript\3.0\node_modules功能称为“自动类型获取”,适用于 JavaScript 项目。由于您的项目有一个tsconfig.json文件,因此自动类型获取应处于非活动状态,并且不应使用任何先前下载的文件;如果您有证据表明它们正在被使用并导致您的项目出现问题,请更新问题。假设您使用的是 Visual Studio Code,您可以通过将typescript.disableAutomaticTypeAcquisition设置设置为来禁用自动类型获取true。
| 归档时间: |
|
| 查看次数: |
1070 次 |
| 最近记录: |