L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Développement · SKILL.md

typescript-eslint

typescript-eslint

typescript-eslint - ESLint plugin for TypeScript USE WHEN: user mentions "typescript-eslint", "TypeScript linting", "type-aware rules", asks about "no-floating-promises", "TypeScript ESLint config", "@typescript-eslint rules" DO NOT USE FOR: ESLint 9 full setup - use `eslint-biome` skill, Biome - use `eslint-biome`, general quality - use `quality-common`

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: typescript-eslint description: | typescript-eslint - ESLint plugin for TypeScript

USE WHEN: user mentions "typescript-eslint", "TypeScript linting", "type-aware rules", asks about "no-floating-promises", "TypeScript ESLint config", "@typescript-eslint rules"

DO NOT USE FOR: ESLint 9 full setup - use eslint-biome skill, Biome - use eslint-biome, general quality - use quality-common allowed-tools: Read, Grep, Glob

typescript-eslint - Quick Reference

When to Use This Skill

  • Configure ESLint for TypeScript projects
  • Type-aware rules for TypeScript
  • Migration from TSLint

When NOT to Use This Skill

  • Full ESLint 9 setup - Use eslint-biome skill for complete configuration
  • Biome linter - Use eslint-biome skill for Biome setup
  • Code quality principles - Use quality-common for SOLID/Clean Code
  • Java/Kotlin - Use sonarqube skill for JVM languages

Deep Knowledge: Use mcp__documentation__fetch_docs with technology: typescript-eslint for comprehensive documentation.

Basic Setup

npm install -D eslint typescript-eslint

Flat Config (ESLint 9+)

eslint.config.mjs

import eslint from '@eslint/js';
import tseslint from 'typescript-eslint';

export default tseslint.config(
  eslint.configs.recommended,
  ...tseslint.configs.recommended,
);

Type-Aware Linting

import eslint from '@eslint/js';
import tseslint from 'typescript-eslint';

export default tseslint.config(
  eslint.configs.recommended,
  ...tseslint.configs.recommendedTypeChecked,
  {
    languageOptions: {
      parserOptions: {
        projectService: true,
        tsconfigRootDir: import.meta.dirname,
      },
    },
  },
);

Strict Configuration

export default tseslint.config(
  eslint.configs.recommended,
  ...tseslint.configs.strictTypeChecked,
  ...tseslint.configs.stylisticTypeChecked,
);

Common Rules

{
  rules: {
    // Prevent unused variables
    '@typescript-eslint/no-unused-vars': ['error', {
      argsIgnorePattern: '^_'
    }],

    // Require explicit return types
    '@typescript-eslint/explicit-function-return-type': 'warn',

    // Prevent any usage
    '@typescript-eslint/no-explicit-any': 'error',

    // Require await in async functions
    '@typescript-eslint/require-await': 'error',

    // Prevent floating promises
    '@typescript-eslint/no-floating-promises': 'error',

    // Consistent type imports
    '@typescript-eslint/consistent-type-imports': 'error',
  }
}

File-Specific Rules

export default tseslint.config(
  // ... base config
  {
    files: ['**/*.test.ts', '**/*.spec.ts'],
    rules: {
      '@typescript-eslint/no-explicit-any': 'off',
    },
  },
  {
    files: ['**/*.js'],
    ...tseslint.configs.disableTypeChecked,
  },
);

Anti-Patterns

Anti-PatternWhy It's BadCorrect Approach
Not using type-aware rulesMisses Promise, async issuesUse recommendedTypeChecked
Allowing any everywhereDefeats TypeScript purposeSet no-explicit-any: error
No require-await ruleUnnecessary async keywordsEnable type-aware async rules
Type checking JS filesJS has no typesUse disableTypeChecked for .js
Disabling rules in test filesTests need quality tooOnly disable no-explicit-any if needed
Ignoring unused variablesCode smell, unused importsUse no-unused-vars with ignore pattern

Quick Troubleshooting

IssueLikely CauseSolution
Type-aware rules not workingMissing projectService: trueAdd to languageOptions.parserOptions
Linting very slowType checking all filesLimit type rules to **/*.ts only
"Unsafe" errors everywhereStrict type checkingUse strictTypeChecked or disable specific rules
Promise errors not caughtMissing no-floating-promisesEnable in recommendedTypeChecked preset
Unused imports not detectedWrong rule configurationUse @typescript-eslint/no-unused-vars
Rules conflict with PrettierBoth formatting codeAdd eslint-config-prettier last
Skills enregistrées