-
Notifications
You must be signed in to change notification settings - Fork 4.5k
TypeScript: Convert notices package to TypeScript #67670
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
base: trunk
Are you sure you want to change the base?
Conversation
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.
To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
Size Change: +1 B (0%) Total Size: 1.91 MB
ℹ️ View Unchanged
|
export function removeNotice( id, context = DEFAULT_CONTEXT ) { | ||
export function removeNotice( | ||
id: string, | ||
context = DEFAULT_CONTEXT |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure if there's a WPCS recommendation somewhere, but personally I'd provide an explicit type definition here (and elsewhere) instead of inferring types from a constant (let alone an imported one).
- It's more self-documenting.
- Makes it easier to guard internally against an unintentional backcompat type break somewhere else in the codebase, or in a similar vein spot discrepancies between the doc-block and the actual method.
- (Also, anecdotally so this could be a skills issue on my part, but type inference can sometimes be flaky in IDEs)
Flaky tests detected in 55701ba. 🔍 Workflow run URL: https://github.com/WordPress/gutenberg/actions/runs/12515947683
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR converts the notices package to TypeScript by renaming files, adding type annotations, and updating tests and documentation.
- Convert JavaScript files to TypeScript with updated type definitions
- Update reducer, actions, selectors, and tests to support strong typing
- Revise documentation and changelog to reflect TypeScript integration
Reviewed Changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated no comments.
Show a summary per file
File | Description |
---|---|
packages/notices/src/store/utils/on-sub-key.ts | Added generic and type annotations to the higher-order reducer. |
packages/notices/src/store/types.ts | Introduced type definitions for notice objects and related actions. |
packages/notices/src/store/test/* | Updated tests with proper TS comments and adjustments for type checking. |
packages/notices/src/store/reducer.ts | Enhanced reducer using generics and added a default case for better type safety. |
packages/notices/src/store/index.ts | Exported types and ensured consistent store registration. |
packages/notices/src/store/controls.ts | Added type annotations for action parameters. |
packages/notices/src/store/constants.ts | Improved constant definitions with explicit type annotations. |
packages/notices/src/store/actions.ts | Converted actions to TypeScript, including usage of Extract to constrain types. |
packages/notices/CHANGELOG.md | Updated changelog to reflect enhanced TypeScript definitions. |
docs/reference-guides/data/data-core-notices.md | Updated documentation tokens and signatures to reference TypeScript files. |
Comments suppressed due to low confidence (2)
packages/notices/src/store/actions.ts:249
- The documentation for the 'context' parameter in removeNotice incorrectly mentions a default of 'default'; however, the implementation uses DEFAULT_CONTEXT (which is 'global'). Please update the comment to state that the default is 'global'.
* @param context Optional context (grouping) in which the notice is
* intended to appear. Defaults to 'default' context.
docs/reference-guides/data/data-core-notices.md:389
- The docs incorrectly describe the default context as 'default' while the code uses 'global'. Please update this line to state that the default context is 'global' for clarity and consistency.
- _context_ `string`: Optional context (grouping) in which the notices are intended to appear. Defaults to 'default' context.
Supercedes #67565, which got closed after I deleted my fork 🤦
What?
Convert the
notices
package to TypeScriptWhy?
To improve the DX
How?
By renaming the files and adding types
Testing Instructions
Testing Instructions for Keyboard
Screenshots or screencast