Skip to content

Annotating types the compiler infers ​

Code longer than it needs to be: one of the ways AI coding agents bloat software, from lessloc's pattern catalog. lessloc catches it as simpler.

What makes annotating types the compiler infers a bad practice? ​

The standard that calls it a bad practice: typescript-eslint no-inferrable-types.

What does lessloc do about annotating types the compiler infers? ​

lessloc catches it as simpler.

  • simpler (tier 2): Brute-force code with a shorter idiom: == True, an if/else that returns the condition, an index loop that only reads xs[i], .filter(...).length > 0, a catch that only rethrows, a flag loop that is any(), a hand-built counter, an __init__ that @dataclass writes, a React Effect that only sets state. ruff and clippy add more.

Examples ​

Caught as simpler:

ts
export const owner: string = "ada";
export let visits: number = 0;

Written well:

ts
export const owner = "ada";
export let visits = 0;

The other patterns in Code longer than it needs to be:

Released under the Apache-2.0 license. · llms.txt