JoshuaKGoldberg / JoshuaKGoldberg/TypeStat

🐛 Bug: strictNonNullAssertions does not understand that undefined is accepted in union array

Open
#1,518 0 comments 0 reactions 0 assignees View on GitHub
status: accepting prs type: bug
Dominant language
TypeScript
Stars
2.3k
Forks
47
Avg merge
15h 55m
Merged PRs (30d)
21

Description

### Bug Report Checklist

- [X] I have tried restarting my IDE and the issue persists.
- [X] I have pulled the latest `main` branch of the repository.
- [X] I have [searched for related issues](https://github.com/JoshuaKGoldberg/TypeStat/issues?q=is%3Aissue) and found none that matched my issue.

### Expected

I expected it to not add `!` to undefined

```ts
const someArray: (string | undefined)[] = [];
someArray.push(undefined);
```

### Actual

```ts
const someArray: (string | undefined)[] = [];
someArray.push(undefined!);
```

### Additional Info

typestat.json
```json
[
{
"fixes": {
"strictNonNullAssertions": true
},
"include": [
"src/**/*.{ts,tsx}"
],
"projectPath": "./tsconfig.json",
"types": {
"strictNullChecks": true
}
}
]
```

tsconfig
```tsconfig.json
{
"compilerOptions": {
"declaration": true,
"declarationMap": true,
"esModuleInterop": true,
"module": "NodeNext",
"moduleResolution": "NodeNext",
"noEmit": true,
"outDir": "lib",
"resolveJsonModule": true,
"skipLibCheck": true,
"sourceMap": true,
"strict": true,
"target": "ES2022"
},
"include": ["src", "test/*.ts"]
}
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.