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.
Common errors
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.
Warnings
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.
Install
npm install eslint-config-twilio-ts yarn add eslint-config-twilio-ts pnpm add eslint-config-twilio-ts Imports
- twilio-ts wrong
{ "extends": ["eslint-config-twilio-ts"] }correct{ "extends": ["twilio-ts"] } - eslint wrong
const eslint = require('eslint')correctimport { Linter } from 'eslint'
Quickstart
// 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/