reactjs - @material-ui/core 和@types/material-ui 是什么关系?

标签 reactjs typescript material-ui npm-install

这里我看到了一个使用 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/

这是我的问题:

  1. 我想弄明白为什么material-ui的包名里要用@,这样的包名是不是就代表是TS包?即,它本身携带类型信息。

  2. 如果以上是真的,那么/@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/

相关文章:

javascript - redux如何使用状态

javascript - 将子类别作为数组对象中的数组

javascript - 如何将状态作为 Prop 传递以便您可以修改它们

javascript - 我应该在哪里声明在 useEffect() Hook 中调用的函数?

visual-studio - Visual Studio 2015/2017 中的 TSLint?

css - 如何使用 hooks 覆盖 Material ui 样式

android - 使用 Espresso 运行 UI 测试,如何在 Material Design 芯片布局中引用关闭图标?

javascript - 自定义主题背景色

reactjs - 有没有一种方法可以将使用 ES6 类的 React 组件重置为其初始状态?

node.js - 在类型上找不到参数类型为 'string'的索引签名