【问题标题】:Do I need @types/ before every dependency in react native?在反应原生的每个依赖项之前我是否需要@types/?
【发布时间】:2019-01-18 20:17:13
【问题描述】:

我想将我现有的 React Native 应用程序转换为 typescript

文档说要卸载现有的依赖项并将它们替换为如下内容:

yarn add --dev @types/jest @types/react @types/react-native @types/react-test-renderer

我需要对 every 依赖项执行此操作吗?如果某些依赖项没有 @types/ 怎么办?

这是我的 package.json:

{
  "name": "reactnative",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "react-native start",
    "test": "jest"
  },
  "dependencies": {
    "axios": "^0.18.0",
    "expo": "^28.0.0",
    "faker": "^4.1.0",
    "formik": "^0.11.11",
    "immutability-helper": "^2.7.1",
    "lodash": "^4.17.10",
    "native-base": "^2.7.1",
    "react": "16.3.1",
    "react-native": "0.55.4",
    "react-native-actionsheet": "^2.4.2",
    "react-native-autogrow-textinput": "^5.1.1",
    "react-native-firebase": "^4.2.0",
    "react-native-keyboard-input": "^5.2.3",
    "react-native-keychain": "^3.0.0-rc.3",
    "react-native-material-color": "^1.0.15",
    "react-native-parsed-text": "0.0.20",
    "react-native-section-list-get-item-layout": "^2.2.3",
    "react-native-ui-kitten": "^3.0.1",
    "react-native-vector-icons": "^4.6.0",
    "react-navigation": "^2.5.5",
    "react-redux-firebase": "^2.1.6",
    "recompose": "^0.27.1",
    "redux-logger": "^3.0.6",
    "redux-promise-middleware": "^5.1.1",
    "redux-thunk": "^2.3.0",
    "yup": "^0.25.1"
  },

【问题讨论】:

    标签: javascript node.js typescript react-native


    【解决方案1】:

    文档说要卸载现有的依赖项并替换它们

    实际上你必须安装两个包,如react和相关类型如@types/react。如果react已安装,则无需卸载重新安装。

    我需要对每个依赖项都这样做吗?

    只要你想要它的类型。

    如果某些依赖项没有 @types/ 怎么办?

    然后你要么自己输入,要么输入为any,你就没有Typescript的类型安全了。

    【讨论】:

      【解决方案2】:

      不,以 @types/ 开头的包是 TypeScript定义。如果这些还没有附带 TS 定义(许多大型/流行库都有),则应该将它们安装到实际包之外。您的编辑器和 TypeScript 编译器将使用这些定义来执行类型检查。

      【讨论】:

        【解决方案3】:

        @types 类型存在于所有流行的库中。有些库包含类型(.d.ts 文件),它们不需要类型,例如axios

        对于没有类型的库,开发人员可以提供自己的类型声明或使用无类型导入,例如与require。例如open issue 代表react-native-actionsheet

        文档说要卸载现有的依赖项

        文档不应该这样说。不应卸载现有的依赖项。只应添加各自的 @type 依赖项。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-11-23
          • 1970-01-01
          • 2020-02-12
          • 2020-04-14
          • 1970-01-01
          • 2020-01-30
          • 2012-05-12
          • 1970-01-01
          相关资源
          最近更新 更多