反应本机打字稿。非工作类型检查

时间:2020-03-17 18:20:34

标签: typescript react-native typechecking

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

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

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

当我将其添加到标准React应用(用于Web)时,TS编译器向我显示

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

但是当我对RN执行相同操作时,它只是编译而没有显示任何警告/错误等。 就像一切正常一样,只需在模拟器上启动该应用即可。

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

P.S。我什至尝试了this one。相同的行为。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

我几乎整天都在寻找解决方案,而RN打字稿模板似乎不支持开箱即用的类型检查。 关于他们的官方文档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软件包。

P.S。不幸的是,控制台中的错误警告没有颜色(红色等),因此可能让人讨厌,但是总之,它比在运行时根本不进行类型检查要好得多。

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