Closed
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
declare const falseyBigInt: 0n;
if (falseyBigInt) {
}
ESLint Config
module.exports = {
"rules": {
"@typescript-eslint/no-unnecessary-condition": "warn"
}
}
tsconfig
Expected Result
Unnecessary conditional, value is always falsy.
Actual Result
Unnecessary conditional, value is always truthy.
Additional Info
This is a bug with this line.
The .value
field returns a PseudoBigInt
object that looks like { negative?: boolean, base10Value: string }
, rather than a bigint
itself (for legacy TS support reasons). So checking for truthiness is incorrect; we need to convert to a real bigint.