Zum Hauptinhalt springen
ai-slop/duplicate-type-declarationmanuelle Behebung

Doppelt exportierter Typ.

Dasselbe exportierte `interface` oder derselbe `type`-Alias, mit gleichem Namen und gleichem Inhalt, in zwei TypeScript-Dateien deklariert. Zwei Quellen der Wahrheit für eine Form.

Beanstandete und saubere Form.

Jedes Beispiel zeigt genau die Codeform, nach der die Regel sucht, und dann die kleinste Version, die die Absicht bewahrt, ohne Risiken zu verstecken oder Rauschen hinzuzufügen.

duplicate-type-declaration.ts
✗ Beanstandet
// src/billing/types.ts
export interface Customer { id: string; email: string }

// src/email/send-receipt.ts
export interface Customer { id: string; email: string }
Warum das anschlägt

Deterministischer AST-Abgleich über Dateien hinweg: normalisiert jedes exportierte Interface und jeden Typ-Alias in `.ts`/`.tsx`-Dateien und beanstandet eine Deklaration, deren Name und Text mit einer bereits in einer anderen Datei gesehenen übereinstimmen.

duplicate-type-declaration.ts
✓ Sauber
// src/billing/types.ts
export interface Customer { id: string; email: string }

// src/email/send-receipt.ts
import type { Customer } from '../billing/types'
Was sich geändert hat

Behalte einen exportierten Typ und importiere ihn dort, wo er gebraucht wird.

Agenten deklarieren Typen lokal in der Datei, an der sie gerade arbeiten, statt den vorhandenen zu suchen. Die Kopien laufen auseinander, sobald eine davon geändert wird.

Wie diese Regel begründet ist.

Regel-ID

ai-slop/duplicate-type-declaration

Prüfende Engine

ai-slop

Erkennungsstrategie

Deterministischer AST-Abgleich über Dateien hinweg: normalisiert jedes exportierte Interface und jeden Typ-Alias in `.ts`/`.tsx`-Dateien und beanstandet eine Deklaration, deren Name und Text mit einer bereits in einer anderen Datei gesehenen übereinstimmen.

Legitimer Code, der NICHT beanstandet wird

Duplikate innerhalb derselben Datei, Typen mit gleichem Namen, aber anderer Form, nicht exportierte Typen und Pfade außerhalb des Produktivcodes werden nicht beanstandet.

Belege

Teil von aislops Detektoren für defensive Muster in TypeScript, gewertet in der Maintainability-Stufe, weil doppelte Typen das Risiko des Auseinanderlaufens bergen.