Closed as not planned
Description
Before You File a Bug Report Please Confirm You Have Done The Following...
- I have tried restarting my IDE and the issue persists.
- I have updated to the latest version of the packages.
- I have searched for related issues and found none that matched my issue.
- I have read the FAQ and my problem is not listed.
Playground Link
Repro Code
type Fn = {
<R extends string | undefined>(): R;
}
const t: Fn = () => undefined;
function loseOrLose(): string | number {
if (Math.random() >= 0.5) {
// no-unnecessary-type-assertion thinks the "as string" is unnecessary
return t() as string;
} else {
// but without `as string` typescript fails
return t();
}
}
ESLint Config
module.exports = {
parser: "@typescript-eslint/parser",
rules: {
"@typescript-eslint/no-unnecessary-type-assertion": "error"
},
};
tsconfig
Expected Result
I expected that as string
would be allowed, since TypeScript fails without it.
Actual Result
no-unnecessary-type-assertion claims the as string
is unnecessary
Additional Info
This is similar to #11054, but I do not know if it has the same root cause.