Skip to content

Instantly share code, notes, and snippets.

@omofolarin
Forked from rstacruz/README.md
Created July 4, 2021 07:02
Show Gist options
  • Select an option

  • Save omofolarin/9d49b5611974d79f183ad883fcc3369f to your computer and use it in GitHub Desktop.

Select an option

Save omofolarin/9d49b5611974d79f183ad883fcc3369f 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