Skip to content

Unused type parameters should be checked by --noUnusedParameters, not --noUnusedLocals #20568

Closed
@mattmccutchen

Description

@mattmccutchen

I reviewed the compiler options for my project and decided to enable --noUnusedLocals but not --noUnusedParameters since the cost-benefit picture seems to be much better for --noUnusedLocals. However, I was surprised to get an error on a type alias that has an unused type parameter for documentation purposes. Since "type parameter" has "parameter" in the name, I expected it would be checked by --noUnusedParameters. I see that several issues have been filed related to the check for unused type parameters, but no one seemed to think it was odd that the check was under --noUnusedLocals.

The code change is very simple, and I'll be happy to prepare a pull request if you agree with the change. I suppose it's a breaking change if someone is using --noUnusedParameters and not --noUnusedLocals; that configuration seems unlikely.

TypeScript Version: current master (5e5b770)

Code

// Compile with --noUnusedLocals
type Oops<T> = number;

Expected behavior:
No errors.

Actual behavior:

unused-type-parameter.ts(1,11): error TS6133: 'T' is declared but its value is never read.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Breaking ChangeWould introduce errors in existing codeBugA bug in TypeScriptFixedA PR has been merged for this issueHelp WantedYou can do this

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions