【问题标题】:React Native Typescript. Non working type check反应原生打字稿。非工作类型检查
【发布时间】:2023-04-02 05:11:02
【问题描述】:

我正在使用 Typescript 研究 RN。通过使用official instruction 我设法添加了 .tsx 和 .ts 文件,但我面临的主要问题是 RN 根本没有检测到文件中的错误类型。 例如。

在 App.tsx 开头我添加了错误的 TS 语句。

let a: number = 5;
a = "test"

当我将它添加到标准 React 应用程序(网页版)时,TS 编译器会显示给我

类型“测试”不能分配给类型“数字”。 TS2322

但是当我在 RN 的情况下做同样的事情时,它只是编译并且没有显示任何警告/错误等。 该应用程序只是在模拟器上启动,一切都很好。

这是我第一次尝试将 RN 与 Typescript 一起使用。在我只使用 WEB 应用程序 + 打字稿之前,为什么我想知道这种行为是否正确?在 React native 的情况下如何启用类型检查?

附:我什至试过this one。同样的行为。

感谢您的帮助。

【问题讨论】:

  • 你的 RN 版本是多少?我会尝试复制
  • 你好穆尼。感谢您的回答。我正在使用:“0.61.5”
  • 不是一个直接的解决方案,但如果您仍然遇到问题,您可以在编辑器中启用 TS 类型检查(如果检测到 tsconfig,VS Code 应该开箱即用)并添加带有 TypeScript 扩展的 ESLint在构建开始之前对您的项目进行 lint(作为构建/启动脚本的一部分),以便您以这种方式获得所有错误和警告
  • 嗨,5ar。谢谢你的建议。但是,当你在服务器运行时开发时,ts 问题如何呢?我认为这只是一种解决方法。我想了解为什么 TS 不能正常工作

标签: typescript react-native typechecking


【解决方案1】:

我花了几乎一整天的时间来寻找解决方案,看起来 RN typescript 模板不支持开箱即用的类型检查。 关于他们的官方文档use tsc command to check types,这意味着我们通常应该只在提交之前检查类型等(可以通过一些像 husky 这样的预提交钩子来完成)

但是我们可以使用tsc,所以我们也可以使用watchMode

我使用了一种解决方法,将脚本添加到我的 package.json 中以将 tsc 运行到监视模式,并与标准 react-native 命令并行运行以检查运行时类型。

// package.json
"scripts": {
    "android:ts-watch": "concurrently \"yarn check-types:watch\"  \"react-native run-android\"",
    "check-types": "tsc",
    "check-types:watch": "tsc --watch"
 }

警告。如果要复制粘贴此脚本,则需要安装 concurrently 包。

附:不幸的是,控制台中的错误警告没有颜色(红色等),因此可能会令人讨厌,但无论如何,总比在运行时根本不进行类型检查要好得多。

如果有人找到更正确的方法,请告诉我

【讨论】:

  • 或者你可以使用&。示例yarn check-types:watch & react-native run-android
猜你喜欢
  • 2018-11-03
  • 1970-01-01
  • 1970-01-01
  • 2019-03-14
  • 2018-03-27
  • 2017-06-24
  • 2021-08-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多