Adding TypeScript
Note: this feature is available with react-scripts@2.1.0 and higher.
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
Installation
To start a new Create React App project with TypeScript, you can run:
npx create-react-app my-app --template typescript
# or
yarn create react-app my-app --template typescript
If you've previously installed create-react-app globally via npm install -g create-react-
app, we recommend you uninstall the package using npm uninstall -g create-react-
app or yarn global remove create-react-app to ensure that npx always uses the latest version.
Global installs of create-react-app are no longer supported.
To add TypeScript to an existing Create React App project, first install it:
npm install --save typescript @types/node @types/react @types/react-dom @types/jest
# or
yarn add typescript @types/node @types/react @types/react-dom @types/jest
Next, rename any file to be a TypeScript file (e.g. src/[Link] to src/[Link]) and restart your
development server!
Type errors will show up in the same console as the build one. You'll have to fix these type errors before you
continue development or build your project. For advanced configuration, see here.
Getting Started with TypeScript and React
You are not required to make a [Link] file, one will be made for you. You are allowed to edit the
generated TypeScript configuration.
TypeScript Handbook
TypeScript Example on React
React + TypeScript Cheatsheets has a good overview on how to use React with TypeScript
Troubleshooting
If your project is not created with TypeScript enabled, npx may be using a cached version of create-
react-app. Remove previously installed versions with npm uninstall -g create-react-
app or yarn global remove create-react-app (see #6119).
If you are currently using create-react-app-typescript, see this blog post for instructions on how to migrate
to Create React App.
Constant enums and namespaces are not supported, you can learn about the constraints of using Babel with
TypeScript here.