Setup TypeScript with React


  1. good understanding of React
  2. familiarity with TypeScript Types (2ality's guide is helpful. If you’re an absolute beginner in TypeScript, check out chibicode’s tutorial.)
  3. having read the TypeScript section in the official React docs.
  4. having read the React section of the new TypeScript playground (optional: also step through the 40+ examples under the playground's Examples section)

This guide will always assume you are starting with the latest TypeScript and React versions. Notes for older versions will be in expandable <details> tags.

VS Code Extensions

React + TypeScript Starter Kits

Cloud setups:

Local dev setups:

  • Next.js: npx create-next-app -e with-typescript will create in your current folder
  • Create React App: npx create-react-app name-of-app --template typescript will create in new folder
  • Vite: npm create vite@latest my-react-ts-app -- --template react-ts
  • Meteor: meteor create --typescript name-of-my-new-typescript-app
  • Ignite for React Native: ignite new myapp
  • TSDX: npx tsdx create mylib for Creating React+TS libraries. (in future: TurboRepo)
Other tools

Less mature tools still worth checking out:

Manual setup:

Import React

import * as React from "react";
import * as ReactDOM from "react-dom";

This is the most futureproof way to import React. If you set --allowSyntheticDefaultImports (or add "allowSyntheticDefaultImports": true) in your tsconfig.json you can use more familiar imports:

import React from "react";
import ReactDOM from "react-dom";

Why allowSyntheticDefaultImports over esModuleInterop? Daniel Rosenwasser has said that it's better for webpack/parcel. For more discussion check out

You should also check the new TypeScript docs for official descriptions between each compiler flag!

Video Tutorial

Have a look at the 7-part "React Typescript Course" video series below for an introduction to TypeScript with React.

react typescript course video series