Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

`packages/extension` fails typecheck on `main` (3 errors in `connectedTabGroup.ts`), and `npm run tsc` does not check it

Closed Beginner friendly
#43,050 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
78/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
typescript

Research direction

Start with packages/extension/src/connectedTabGroup.ts and run the two tsc commands listed in the issue to reproduce the errors. Check the root package scripts, tsconfig.json, eslint.config.mjs, and extension workflow before deciding whether the root typecheck should include both extension configs. Done means the extension typechecks cleanly and any chosen npm or workflow check reliably catches regressions.

Written by the indexing model from the issue text.

Description

Steps

On current main (87291ca60), after npm ci && npm run build:

cd packages/extension
npx tsc -p tsconfig.json --noEmit
npx tsc -p tsconfig.ui.json --noEmit
Actual

tsconfig.ui.json is clean. tsconfig.json fails:

src/connectedTabGroup.ts(79,74): error TS2694: Namespace 'chrome.tabs' has no exported member 'TabChangeInfo'.
src/connectedTabGroup.ts(119,64): error TS2694: Namespace 'chrome.tabs' has no exported member 'TabChangeInfo'.
src/connectedTabGroup.ts(221,49): error TS2345: Argument of type 'number[]' is not assignable to parameter of type 'number | [number, ...number[]]'.
  Type 'number[]' is not assignable to type '[number, ...number[]]'.
    Source provides no match for required element at position 0 in target.

The built extension is fine (vite strips types), so this is typing only.

Cause
  • #41497 bumped @types/chrome from ^0.0.315 to 0.2.0. In 0.2.0 chrome.tabs.TabChangeInfo became chrome.tabs.OnUpdatedInfo, and chrome.tabs.ungroup() takes number | [number, ...number[]] instead of number | number[]. connectedTabGroup.ts still uses the old shapes.
  • Nothing flagged it because the root tsconfig.json excludes packages/extension (since #40429), and nothing typechecks the extension's own tsconfig.json / tsconfig.ui.json: eslint.config.mjs points the parser at them for type-aware rules, but that does not report TS errors, and npm run tsc, flint and the workflows don't run them. tests_extension.yml only runs npm run build, which bundles with vite without typechecking.
Expected

A. tsc -p packages/extension/tsconfig.json passes. The fix is small: TabChangeInfo -> OnUpdatedInfo (2 places), and ungroupTabs() returns early on an empty array and passes the ids as [number, ...number[]] (all current callers already skip empty arrays). I'd like to send this fix. Could someone assign this to me?

B. Should npm run tsc (and so flint/lint) also run the two extension tsconfigs, e.g. tsc -p . && tsc -p packages/extension/tsconfig.json && tsc -p packages/extension/tsconfig.ui.json? #40429 excluded it on purpose (the extension has its own types/moduleResolution), so I'm asking rather than proposing it. Without something like this the errors above can come back unnoticed.

Dominant language
TypeScript
Stars
97.4k
Forks
6.6k
Avg merge
22h 46m
Merged PRs (30d)
245

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from microsoft/playwright

All issues in microsoft/playwright

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.