Skip to content

Instantly share code, notes, and snippets.

@chrisidakwo
Forked from rstacruz/README.md
Created April 10, 2023 13:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chrisidakwo/82d1d11e316e87e35973b3ea3d0c9159 to your computer and use it in GitHub Desktop.
Save chrisidakwo/82d1d11e316e87e35973b3ea3d0c9159 to your computer and use it in GitHub Desktop.
Setting up Babel and TypeScript

Install Babel 7 and TypeScript

yarn add --dev \
  @babel/core \
  @babel/cli \
  @babel/preset-env \
  @babel/preset-typescript \
  typescript

Babel config

Configure babel.config.js to add preset-typescript in there.

module.exports = {
  presets: ['@babel/preset-typescript', '@babel/preset-env']
}

TypeScript config

Create tsconfig.json.

{
  "compilerOptions": {
    // Target latest version of ECMAScript.
    "target": "esnext",
    // Search under node_modules for non-relative imports.
    "moduleResolution": "node",
    // Process & infer types from .js files.
    "allowJs": true,
    // Don't emit; allow Babel to transform files.
    "noEmit": true,
    // Enable strictest settings like strictNullChecks & noImplicitAny.
    "strict": true,
    // Import non-ES modules as default imports.
    "esModuleInterop": true,
    "jsx": "react"
  },
  "include": [
    "src" // <-- change this to where your source files are
  ]
}

Add tsc script

Add the tsc script to your package.json. Configure your CI to run yarn run tsc for checks.

"scripts": {
  "watch": "babel --watch src ---out-dir lib --extensions '.ts,.tsx'",
  "build": "babel src --out-dir lib --extensions '.ts,.tsx'",
  "tsc": "tsc"
}

Just run tsc

This will run type checks.

yarn run tsc

Also see

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment