Zum Inhalt springen
rdlabo.devdocs

Eine Lint-Regel beim Erkennen und Korrigieren von Code beobachten

Machen Sie eine Konvention ausführbar: Prüfen Sie ein privates TypeScript-Member, sehen Sie sich die Diagnosemeldungen an und lassen Sie ESLint es in ein privates JavaScript-Feld umwandeln. Diese Übung verwendet eine frameworkunabhängige Regel und lässt sich daher ohne Angular- oder Ionic-Anwendung ausprobieren.

1. Ein kleines Lint-Projekt erstellen

Verwenden Sie Node.js 24 und npm. Diese isolierte Übung verwendet ESLint 10. Prüfen Sie vor Änderungen an einer bestehenden Anwendung die Anforderungen.

mkdir eslint-rules-demo
cd eslint-rules-demo
npm init -y
npm pkg set type=module
npm install --save-dev @rdlabo/eslint-plugin-rules@22.1.0 eslint@10 typescript@6 typescript-eslint@8

Speichern Sie dies als eslint.config.mjs. Diese reine Syntaxregel benötigt weder ein TypeScript-Projekt noch typgestütztes Linting:

import tseslint from 'typescript-eslint';
import rdlabo from '@rdlabo/eslint-plugin-rules/typescript';

export default tseslint.config({
  files: ['**/*.ts'],
  languageOptions: { parser: tseslint.parser },
  plugins: { '@rdlabo/rules': rdlabo },
  rules: { '@rdlabo/rules/deny-soft-private-modifier': 'error' },
});

2. Die Regel in Aktion sehen

Speichern Sie dies als demo.ts:

class Counter {
  private value = 0;

  increment() {
    return ++this.value;
  }
}

console.log(new Counter().increment());
npx eslint demo.ts

Zu erwarten sind ein Exit-Status ungleich null und zwei Diagnosemeldungen @rdlabo/rules/deny-soft-private-modifier: eine für die Deklaration und eine für den Member-Zugriff.

3. Die Korrektur anwenden und prüfen

npx eslint demo.ts --fix
npx eslint demo.ts

Der zweite Befehl sollte erfolgreich sein. Prüfen Sie demo.ts. Deklaration und Zugriff sollten nun ein privates JavaScript-Feld verwenden:

class Counter {
  #value = 0;

  increment() {
    return ++this.#value;
  }
}

console.log(new Counter().increment());

Dies demonstriert eine einzelne Regel, kein vollständiges Projekt-Preset. Nicht jede Regel besitzt eine automatische Korrektur. Prüfen Sie automatische Änderungen vor dem Committen.

4. Das passende Preset übernehmen

Projektanforderung Einstiegspunkt und Preset
Angular-/Ionic-Komponenten und Templates Paketwurzelpfad, recommended
Fehlergrenzen in Workers /typescript, workers/recommended
Prüfungen auf Zeitzonenregressionen /typescript, workers-timezone/recommended

Die beiden Workers-Presets müssen unabhängig aktiviert werden. Beginnen Sie für Zeitzonen mit der gemeinsamen Bibliotheks- und Lint-Übung. Das Plugin meldet Codemuster; es implementiert keine Laufzeitkonvertierungen und ersetzt keine Anwendungstests.

Öffnen Sie Konfiguration für die Angular-/Ionic- oder Workers-Einrichtung. Erhalten Sie beim Verteilen des Angular-Presets die TypeScript- und HTML-Selektoren und aktivieren Sie typgestütztes Linting für Regeln, die Typen prüfen. Führen Sie den Lint-Befehl Ihres Projekts in CI aus und nehmen Sie ihn in die Anweisungen für Mitwirkende und KI-Codeagenten auf.

Verwenden Sie den Regelkatalog, um jeweils eine Richtlinie hinzuzufügen. Prüfen Sie Migration, bevor Sie in einer bestehenden Anwendung ein neueres empfohlenes Preset aktivieren.