[wrangler] Fix types --strict-vars=false emitting invalid TypeScript for an empty array var - #14889
Open
chinesepowered wants to merge 1 commit into
Open
[wrangler] Fix types --strict-vars=false emitting invalid TypeScript for an empty array var#14889chinesepowered wants to merge 1 commit into
types --strict-vars=false emitting invalid TypeScript for an empty array var#14889chinesepowered wants to merge 1 commit into
Conversation
typeofArray derived element types from the array's contents, so an empty array produced zero types and fell through to the join branch with an empty list, emitting ()[]. That is a syntax error, and since it lands in worker-configuration.d.ts it broke the whole generated file rather than just the one line.
🦋 Changeset detectedLatest commit: e0265a8 The changes in this PR will be included in the next version bump. This PR includes changesets to release 3 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
workers-devprod
requested review from
a team and
penalosa
and removed request for
a team
July 28, 2026 02:11
Contributor
|
Codeowners approval required for this PR:
Show detailed file reviewers
|
@cloudflare/autoconfig
@cloudflare/config
create-cloudflare
@cloudflare/deploy-helpers
@cloudflare/kv-asset-handler
miniflare
@cloudflare/pages-shared
@cloudflare/unenv-preset
@cloudflare/vite-plugin
@cloudflare/vitest-pool-workers
@cloudflare/workers-auth
@cloudflare/workers-editor-shared
@cloudflare/workers-utils
wrangler
commit: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #14886.
wrangler types --strict-vars=falseemitted()[]for any var whose value is an empty array.typeofArrayderives the element types from the array's contents, so an empty array yields zero types and falls through to the join branch with an empty list — thelength === 1andlength >= 2cases were handled,length === 0was not.Because this output lands in the generated
worker-configuration.d.ts, the impact is not limited to the one line:()[]is a syntax error, so the entire file fails to parse and no binding types resolve for the project.An empty array now generates
unknown[].never[]would also be valid, but would make appends a type error for anyone who populates the var at runtime.The empty-array case is covered by adding
varArrEmpty: []to the existingshould allow opting out of strict-varstest, which is the canonical enumeration of var shapes under--strict-vars=false. I confirmed it fails without the source change:Full
type-generation.test.tssuite passes (112 tests).