Skip to content

Conversation

dvmoritzschoefl
Copy link
Contributor

The problem:

TS cannot (yet) decide if static indexed access is valid or not. Example:

// columns is typed as T[] (without undefined/null)
if (columns.length === 3) {
    columns[0]... -> TS error
}

Also for loops are not inferable

for (let i = 0; i < 3; i++) {
    if (columns[i]) {
        columns[i]... -> TS error
    }
}

@dvmoritzschoefl dvmoritzschoefl added the type: feature New feature or request label Jan 28, 2025
@dvmoritzschoefl dvmoritzschoefl requested a review from a team as a code owner January 28, 2025 08:36
@@ -17,7 +17,7 @@
"allowSyntheticDefaultImports": true,
"preserveWatchOutput": true,
"strict": true,
"noUncheckedIndexedAccess": true,
"noUncheckedIndexedAccess": false,
Copy link
Contributor

@puehringer puehringer Mar 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I looked at this and it does effect non arrays as well, i.e. simple objects: https://www.typescriptlang.org/tsconfig/#noUncheckedIndexedAccess

I don't want to disable it for object access, as I think it is crucial there. Any alternative @dvmoritzschoefl?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: feature New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants