type User = {
id: string
email: string
plan: 'free' | 'pro'
}
const user = response.body as unknown as User
sendWelcomeEmail(user.email)Deterministischer AST-Abgleich: beanstandet verkettete Assertions der Form `as unknown as T`.
Ein `as unknown as X`-Cast – eine doppelte Notluke, wenn der Compiler ein direktes `as X` ablehnt. Schmuggelt Typen ohne Validierung durch.
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.
type User = {
id: string
email: string
plan: 'free' | 'pro'
}
const user = response.body as unknown as User
sendWelcomeEmail(user.email)Deterministischer AST-Abgleich: beanstandet verkettete Assertions der Form `as unknown as T`.
const user = UserSchema.parse(response.body)
sendWelcomeEmail(user.email)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.
ai-slop/double-type-assertion
ai-slop
Deterministischer AST-Abgleich: beanstandet verkettete Assertions der Form `as unknown as T`.
Eine einzelne, bewusste Assertion mit Begründung oder eine Laufzeitvalidierung, die den Zieltyp erzeugt, wird nicht beanstandet.
Herkunft: wiederholt in öffentlichen Scans aufgetreten, als nächste Notluke, nachdem ein direkter Cast abgelehnt wurde.