这里我看到了一个使用 material-ui 的示例项目。
我看到我在 package.json 文件中有以下包
{
...
"dependencies": {
"@material-ui/core": "^1.4.1",
...
},
"devDependencies": {
"@types/material-ui": "^0.20.6",
...
},
...
}
npm install
后,我在我的项目文件夹中看到以下目录
node_modules/@types/material-ui/
node_modules/@material-ui/core/
这是我的问题:
我想弄明白为什么material-ui的包名里要用
@
,这样的包名是不是就代表是TS包?即,它本身携带类型信息。如果以上是真的,那么
/@types/material-ui/
是不是真的根本不需要?
最佳答案
包名中的
@
并不表示它是一个 TypeScript 包;纯 JavaScript 包也可以有 @
前缀。
@
前缀表示这是一个 scoped package ;即在 @material-ui/
和 @types/
下有一系列包。
在这种特定情况下,@material-ui/core
包含自己的类型定义(*.d.ts
文件),所以 @types/material -ui
不需要,也不会实际使用。一般来说,@types/
包是纯 JavaScript 包所必需的,它们本身不包含任何类型定义。
关于reactjs - @material-ui/core 和@types/material-ui 是什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52194069/