microsoft / microsoft/TypeScript
noUnusedLocals throws errors for "never" type.
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 111k
- Forks
- 14.3k
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 132
Description
Search Terms:
nounusedlocals never
nounusedlocals
never
never variable is not used error
Code
//NOTE: nounusedlocals is set to true in tsconfig.
enum Color {
A,
B,
}
function f(color: Color) {
switch(color) {
case Color.A:
console.log("White");
break;
case Color.B:
console.log("Black");
break;
default:
const _:never = color;
}
}
Expected behavior:
Compiles fine, prints nothing
Actual behavior:
Given variable _ is unused. _ is of type never which means it is expected to be never used. It is being declared as a compile time safety to ensure that we have cases over all the Color enum values.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by compiling the provided TypeScript snippet with noUnusedLocals enabled and confirm the diagnostic on the const _: never = color declaration. Trace the noUnusedLocals diagnostic for this declaration and compare it with the expected exhaustive-switch behavior. Done means the snippet compiles without reporting _ as unused while other genuinely unused locals remain diagnosed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100