Zum Hauptinhalt springen
ai-slop/double-type-assertionmanuelle Behebung

Doppelte Type Assertion.

Ein `as unknown as X`-Cast – eine doppelte Notluke, wenn der Compiler ein direktes `as X` ablehnt. Schmuggelt Typen ohne Validierung durch.

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.

double-type-assertion.ts
✗ Beanstandet
type User = {
  id: string
  email: string
  plan: 'free' | 'pro'
}

const user = response.body as unknown as User
sendWelcomeEmail(user.email)
Warum das anschlägt

Deterministischer AST-Abgleich: beanstandet verkettete Assertions der Form `as unknown as T`.

double-type-assertion.ts
✓ Sauber
const user = UserSchema.parse(response.body)
sendWelcomeEmail(user.email)
Was sich geändert hat

Ersetze die doppelte Assertion durch Laufzeitvalidierung, einen Parser oder einen Type Guard. Brauchst du wirklich eine Assertion, dann assertiere einmal auf einen konkreten Typ und dokumentiere, warum der Compiler ihn nicht kennen kann.

Wenn TS einen einfachen Cast mit "Type X is not assignable to Y" ablehnt, greifen Agenten zum doppelten Cast als nächster Notluke. Gleiches Problem, nur besser versteckt.

Wie diese Regel begründet ist.

Regel-ID

ai-slop/double-type-assertion

Prüfende Engine

ai-slop

Erkennungsstrategie

Deterministischer AST-Abgleich: beanstandet verkettete Assertions der Form `as unknown as T`.

Legitimer Code, der NICHT beanstandet wird

Eine einzelne, bewusste Assertion mit Begründung oder eine Laufzeitvalidierung, die den Zieltyp erzeugt, wird nicht beanstandet.

Belege

Herkunft: wiederholt in öffentlichen Scans aufgetreten, als nächste Notluke, nachdem ein direkter Cast abgelehnt wurde.