Twilio ESLint TypeScript Config

raw JSON →
2.0.0 verified Sat Apr 25 auth: no javascript

eslint-config-twilio-ts v2.0.0 is Twilio's official ESLint configuration for TypeScript projects. It extends eslint-config-twilio and @typescript-eslint, enforcing Twilio's coding style. Release cadence is low (major versions every few years). Key differentiators: opinionated rules for TypeScript, integrated Prettier support, optional React via eslint-config-twilio-react. Requires eslint ^8 and typescript ^3 || ^4.

error Error: Failed to load plugin '@typescript-eslint' declared in 'twilio-ts': Cannot find module '@typescript-eslint/eslint-plugin'
cause Missing @typescript-eslint/eslint-plugin peer dependency.
fix
npm install @typescript-eslint/eslint-plugin --save-dev
error Parsing error: Cannot read file 'tsconfig.json'.
cause Missing or incorrect 'parserOptions.project' pointing to a valid tsconfig.json.
fix
Ensure tsconfig.json exists and set 'parserOptions.project' to its path (e.g., './tsconfig.json').
error ESLint couldn't find the config 'twilio-ts'.
cause eslint-config-twilio-ts package not installed or not in node_modules.
fix
Run npm install eslint-config-twilio-ts --save-dev.
breaking eslint-config-twilio-ts v2.0.0 drops support for eslint versions 5, 6, and 7. Only eslint 8 is supported.
fix Upgrade eslint to version 8.x.
gotcha When also using eslint-config-twilio-react, 'twilio-ts' must come after 'twilio-react' in the extends array to override conflicting rules.
fix Order your extends as ["twilio-react", "twilio-ts"].
gotcha The config uses Prettier; ensure a .prettierrc.js imports the base prettier config from eslint-config-twilio, or formatting rules may conflict.
fix Create .prettierrc.js that requires the base config from eslint-config-twilio/rules/prettier.
deprecated typescript peer dep accepts ^3 or ^4. TypeScript 3 is end-of-life; consider upgrading to TypeScript 4+.
fix Update typescript to version 4.x in your package.json.
npm install eslint-config-twilio-ts
yarn add eslint-config-twilio-ts
pnpm add eslint-config-twilio-ts

Shows installation, ESLint config file setup with the twilio-ts rules, and a lint script for TypeScript files.

// Install
// npm install eslint eslint-config-twilio-ts --save-dev

// .eslintrc.json
{
  "extends": ["twilio-ts"],
  "parserOptions": {
    "project": "./tsconfig.json"
  }
}

// package.json script
"lint": "eslint --ext ts src/"

// Run
// npx eslint --ext ts src/