前端 @types/*** 某个依赖,会包含依赖本身吗?

作者站长头像
站长
· 阅读数 22

今天在项目中需要用到 semver 这个库,然后我按照之前的经验,就直接执行 npm i @types/semver 但是在使用的时候,竟然出现了以下错误前端 @types/*** 某个依赖,会包含依赖本身吗?

但是我之前开发中,我的 nodeexpress 只安装了 @types 的版本。并且可以正常使用。前端 @types/*** 某个依赖,会包含依赖本身吗?

问题: @types只包含包的声明文件?还是也包含包本身呢?(或者说有些包只包含依赖,有些包本身和声明文件都被包含了呢?)

回复
1个回答
avatar
test
2024-06-19

@types/*是不包含本体的。

有的库,本体就已经自带类型声明,不需要额外安装@types/*,比如vue。但有的库,本体和类型声明是分开的,比如react@types/react,需要分开装。

一般来说,只安装@types/*并不会带上本体。你的项目里某些库只安装@types/*也能跑,是因为其他包间接依赖了它,所以也出现在node_modules里了;或者你已经把express安装在了全局,虽然项目里没找到express,但从全局安装位置找到了。

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容