Skip to content

feat!: enable noUncheckedIndexedAccess and exactOptionalPropertyTypes #36

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

haoqunjiang
Copy link
Member

@haoqunjiang haoqunjiang commented Mar 16, 2025

See https://www.semver-ts.org/formal-spec/5-compiler-considerations.html#strictness for the arguments for turning on noUncheckedIndexedAccess for libraries.

In short, it helps prevent shipping accidental breaking type changes to library consumers.

The link also suggests turning on exactOptionalPropertyTypes, but I still have doubts about it, as it would not be helpful without a specific coding style, which is hard to enforce. By moving both options to the baseline tsconfig.json, we can ensure strictness across the ecosystem.

See https://www.semver-ts.org/formal-spec/5-compiler-considerations.html#strictness
for the arguments for turning on noUncheckedIndexedAccess for libraries.

In short, it helps prevent shipping accidental breaking type changes to
library consumers.

(Note the link also suggests turning on `exactOptionalPropertyTypes`,
but I still have doubts about it, as it would not be helpful without
a specific coding style, which is hard to enforce.)
@haoqunjiang
Copy link
Member Author

Update: both noUncheckedIndexedAccess and exactOptionalPropertyTypes are now turned on by default in the tsc --init template of TS 5.9 microsoft/TypeScript#61813
I think we should apply the same to both library & app tsconfigs.

@haoqunjiang haoqunjiang changed the title feat!: turn on noUncheckedIndexedAccess for libraries feat!: enable noUncheckedIndexedAccess and exactOptionalPropertyTypes Jul 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant