Zum Hauptinhalt springen
ai-slop/redundant-type-coercionmanuelle Behebung

Redundante Typumwandlung.

`String(x)`, `Number(x)` oder `Boolean(x)` auf einem Parameter, der bereits mit diesem primitiven Typ annotiert ist. Die Umwandlung wiederholt, was das Typsystem schon garantiert.

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.

redundant-type-coercion.ts
✗ Beanstandet
export function formatPrice(amount: number, currency: string) {
  const value = Number(amount)
  return `${String(currency)} ${value.toFixed(2)}`
}
Warum das anschlägt

Deterministischer AST-Abgleich für TypeScript: beanstandet `String()`, `Number()` oder `Boolean()` auf einem Parameter, der entsprechend als `string`, `number` oder `boolean` annotiert ist, innerhalb des Bodys genau dieser Funktion.

redundant-type-coercion.ts
✓ Sauber
export function formatPrice(amount: number, currency: string) {
  return `${currency} ${amount.toFixed(2)}`
}
Was sich geändert hat

Vertrau der typisierten Grenze und lass die Umwandlung weg, oder validiere unbekannte Eingaben einmal dort, wo sie ins System kommen.

Agenten wandeln Eingaben vorsorglich um, falls ein Aufrufer den falschen Typ übergibt, selbst wenn die Signatur das ausschließt.

Wie diese Regel begründet ist.

Regel-ID

ai-slop/redundant-type-coercion

Prüfende Engine

ai-slop

Erkennungsstrategie

Deterministischer AST-Abgleich für TypeScript: beanstandet `String()`, `Number()` oder `Boolean()` auf einem Parameter, der entsprechend als `string`, `number` oder `boolean` annotiert ist, innerhalb des Bodys genau dieser Funktion.

Legitimer Code, der NICHT beanstandet wird

Umwandlungen von `unknown`- oder untypisierten Werten, Umwandlungen zwischen verschiedenen primitiven Typen (`Number(s)` auf einem String), reine JavaScript-Dateien und Aufrufe in verschachtelten Funktionen werden nicht beanstandet.

Belege

Teil von aislops Detektoren für defensive Muster in TypeScript, gewertet in der Maintainability-Stufe.