如何从create-react-app迁移到打字稿?

时间:2018-12-24 21:46:29

标签: javascript reactjs typescript

我有一个通过create-react-app构建的应用程序。我现在要向其中添加打字稿。所以我遵循了本指南:https://facebook.github.io/create-react-app/docs/adding-typescript

但是我遇到2个问题。首先,当我只想缓慢迁移并一次只更改1个文件并仍然编译应用程序时,现在需要更改整个项目中的负载。而不是一次大爆炸,这是不可能的吗?

第二次出现此错误:cannot compile namespaces when the '--isolatedModules' flag is provided. TS1208

但是当我将此"isolatedModules": true,更改为false并重新加载应用程序时,它会自动将其更改为true,我不知道为什么?

1 个答案:

答案 0 :(得分:0)

我不确定是否在命令行中指定了编译器选项,但是如果是这样,我建议您改用tsconfig.json文件。

Typescript有一个选项allowJs可能会有所帮助(请参阅https://www.typescriptlang.org/docs/handbook/compiler-options.html)。如果您不想为从TypeScript导入的每个noImplicitAny文件编写.d.ts文件,也请确保未启用.js选项(默认情况下处于禁用状态) —这意味着在没有.d.ts(类型定义)文件的情况下,导入的JS模块将具有any类型。 (通常,我建议启用 noImplicitAny,但直到完成代码迁移后才建议使用。)在实践中,使用allowJs并将一堆代码保留在{{1 }}文件比从一开始将所有文件重命名为.js容易得多。虽然TypeScript确实是JavaScript的超集,但是当您开始将带类型注释的代码与不带类型注释的代码混合在一起时,您很快就会开始遇到类型错误(将JS模块导入为.ts类型是一种逃生方法)。 / p>

巧合的是,我偶然遇到了TypeScript的替代方案,该替代方案声称它具有更完善的类型系统,并且更易于与未类型化JS代码进行互操作,但是它仍处于开发者预览版中(并且周围没有很多社区) )。我只读了一点,可能不推荐在TypeScript上使用,主要是出于实际原因(至少那是我的最初印象),但这确实很有趣...如果您好奇的话,可以在这里查看: https://www.onux.com/jspp/