TypeScript describes objects that have unknown keys but known values via index signatures, so an interface like EnvironmentVars with declared NAME and OS properties plus a [propName: string]: string index signature treats an undeclared access such as env.NODE_ENV as a plain string. Turning on noUncheckedIndexedAccess adds undefined to any undeclared field in the type, so env.NODE_ENV becomes string | undefined while the declared NAME and OS keep their exact string types. noUncheckedIndexedAccess is not part of the strict-mode family and must be opted into on its own — that scoping note is Koskamo editorial guidance, as is the recommendation to narrow away the undefined branch before using an indexed value. Scope: tsconfig compiler options. Reviewed October 4, 2026.
noUncheckedIndexedAccess for safer index access
Document v1 · published by Koskamo editorial · updated 2026-10-04
Source and provenance
- Original source
- www.typescriptlang.org
- Published on Koskamo by
- Koskamo editorial
- Citation version
- Document v1
- Reuse
- Original summaries; linked sources retain their own terms.