我使用create-react-app创建了一个带有Typescript支持的React应用程序。
我使用Typescript转换器定位ES5,它支持ES6语法,但不像Babel那样为ES6的增强型数组功能添加polyfill。
有没有办法同时使用Typescript和Babel?
即。 .ts> ES6> babel> ES5。
答案 0 :(得分:1)
这就是我的方法:
create-react-app your-app
cd your-app
tsc --init
(初始化您的Typescript配置文件)mkdir ts
(创建一个ts
文件夹来存储您的Typescript源代码)src
文件夹中的现有文件。 编辑tsconfig.json
文件并设置以下选项:
"target": "es2017",
"module": "es2015",
"jsx": "react-native",
"outDir": "./src",
"rootDir": "./ts",
"moduleResolution": "node"
tsc -w -p .
(在监视模式下启动Typescript编译器)
npm start
(启动React开发脚本)现在,在index.tsx
文件夹中创建ts
,然后开始构建您的应用。当您添加和保存文件时,它们将由Typescript编译器编译并复制到src
文件夹中,Babel / CRA将在其中将其拾取并将其转换为CRA通常执行的任何操作。此方法保留CRA(create-react-app)项目结构,不需要替换react-scripts
等。您只需在Typescript中编码,Typescript编译器将其编译为现代Javascript,CRA完成剩下的工作。
警告:虽然tsc
将在其输出文件夹(src
)中创建Javascript文件,但您必须手动复制css
,图像和其他静态资源。
答案 1 :(得分:0)
为B6的增强型阵列功能等添加polyfill,就像Bable那样。
巴贝尔不这样做。 core-js
这样做。您可以将Core-js与TypeScript一起使用。只需在代码中添加以下内容:
import 'core-js'