javascript - 如何从 create-react-app 迁移到 typescript?

标签 javascript reactjs typescript

我有一个从 create-react-app 构建的应用程序。我现在想给它添加 typescript 。所以我遵循了这个指南:https://facebook.github.io/create-react-app/docs/adding-typescript

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

其次,我收到此错误:在提供“--isolatedModules”标志时无法编译命名空间。 TS1208

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

最佳答案

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

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

巧合的是,我刚刚遇到了一个 TypeScript 的替代品,它声称拥有更完善的类型系统,并且与非类型化 JS 代码的互操作性更容易,但它仍处于开发人员预览阶段(并且还没有很多社区) ).我只读过一点关于它的内容,可能不会推荐它超过 TypeScript,主要是出于实际原因(至少这是我的初步印象),但它确实很有趣......如果你好奇,你可以在这里查看: https://www.onux.com/jspp/

关于javascript - 如何从 create-react-app 迁移到 typescript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53917899/

相关文章:

javascript - 在我的函数中,它运行 document.write 是我指定的 10 倍

reactjs - React - 父组件DidMount早于子组件

typescript - 如何知道 ngOnChanges 中的哪些 @Input 变化?

javascript - React <Link> 是如何工作的? <Link> 中的绝对路径

javascript - 如何避免 redux 中的重复代码(鸭子方法)?

reactjs - 如何使用 typescript 为 HOC 编写通用类型?

angular - ng cli更新到版本10后,VS 2019没有智能感知和验证

javascript - 在 JavaScript 中将日期 2013-11-05 转换为 2013 年 11 月 5 日星期二?

javascript - 使用ajax查找目录中的文件数量

javascript - 将 $scope 传递给服务是一种不好的做法吗?