Loading skill
Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Standardized guidelines and patterns for Frontend Typescript Anti Patterns.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -25% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -20% | 0% |
| case-20 | ✓→✗ | ▼ Worse | -18% | 0% |
| case-08 | ✓→✓ | = Same ✓ | 13% | 0% |
| case-02 | ✓→✓ | = Same ✓ | -6% | 0% |
any usageas)!)anytypescript// ❌ Bad function process(data: any): any { return data.value; } // ✅ Good function process<T extends { value: unknown }>(data: T): T['value'] { return data.value; }
typescript// ❌ Bad const user = data as User; // ✅ Good function isUser(data: unknown): data is User { return typeof data === 'object' && data !== null && 'id' in data; } const user = isUser(data) ? data : null;
typescript// ❌ Bad const name = user!.name; // ✅ Good const name = user?.name ?? 'Unknown';
typescript// ❌ Bad function getName(user: User): string { return user.name; // Could be undefined } // ✅ Good function getName(user: User): string { return user.name ?? 'Unknown'; }
any at all costsOther measured skills in the registry, with their headline benchmark lift.