Skip to content

Core: declare data() getter, each/filter/not arguments in the d.ts - #35871

Merged
pharret31 merged 4 commits into
DevExpress:mainfrom
pharret31:typescript/core/element_wrapper_dts
Oct 23, 2026
Merged

pharret31 merged 4 commits into
DevExpress:mainfrom
pharret31:typescript/core/element_wrapper_dts

Conversation

@pharret31

Copy link
Copy Markdown
Contributor

No description provided.

@pharret31 pharret31 self-assigned this Oct 22, 2026
Copilot AI balanced review requested due to automatic review settings October 22, 2026 14:52
@pharret31
pharret31 requested review from a team as code owners October 22, 2026 14:52
@pharret31
pharret31 requested a review from a team as a code owner October 22, 2026 14:52
@pharret31 pharret31 added the 26_2 label Oct 22, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The deferred predicates expose writable methods on accepted read-only promises, allowing type-checked calls that fail at runtime.

No open issues 🎉

What changed in this PR

This PR updates DevExtreme’s core TypeScript declarations to better represent renderer methods and deferred detection, then removes type-error suppressions made unnecessary by those changes.

Changes:

  • Add a generic data() getter and broaden each, filter, and not signatures.
  • Add isDeferred type predicates to public and internal declarations.
  • Update affected internal types and remove obsolete suppression comments.
File Description
packages/​devextreme/​ts/​dx.all.d.ts Synchronizes bundled renderer declarations.
packages/​devextreme/​js/​core/​utils/​type.d.ts Declares the public deferred type guard.
packages/​devextreme/​js/​core/​renderer.d.ts Updates getter and callback signatures.
packages/​devextreme/​js/​__internal/​ui/​toolbar/​toolbar.base.ts Removes an each suppression.
packages/​devextreme/​js/​__internal/​ui/​themes.ts Removes an each suppression.
packages/​devextreme/​js/​__internal/​ui/​splitter/​utils/​component.ts Types component-name data and adjusts suppression.
packages/​devextreme/​js/​__internal/​ui/​scroll_view/​scrollable.simulated.ts Removes a comparison suppression.
packages/​devextreme/​js/​__internal/​ui/​responsive_box.ts Removes a data-getter suppression.
packages/​devextreme/​js/​__internal/​ui/​overlay/​overlay.ts Removes an iteration suppression.
packages/​devextreme/​js/​__internal/​ui/​multi_view/​multi_view.ts Removes iteration suppressions.
packages/​devextreme/​js/​__internal/​ui/​html_editor/​utils/​table_helper.ts Removes an each suppression.
packages/​devextreme/​js/​__internal/​ui/​html_editor/​modules/​tableResizing.ts Removes iteration suppressions.
packages/​devextreme/​js/​__internal/​ui/​form/​components/​field_item.ts Removes a data-getter suppression.
packages/​devextreme/​js/​__internal/​ui/​diagram/​ui.diagram.toolbox.ts Removes an each suppression.
packages/​devextreme/​js/​__internal/​ui/​context_menu/​menu_base.ts Removes filter and data suppressions.
packages/​devextreme/​js/​__internal/​ui/​calendar/​calendar.ts Removes a date-data suppression.
packages/​devextreme/​js/​__internal/​ui/​calendar/​calendar.base_view.ts Adjusts action argument types and removes suppressions.
packages/​devextreme/​js/​__internal/​ui/​button_group.ts Removes an item-index suppression.
packages/​devextreme/​js/​__internal/​ui/​accordion.ts Uses the generic data getter.
packages/​devextreme/​js/​__internal/​sortable.ts Removes getter and iteration suppressions.
packages/​devextreme/​js/​__internal/​scheduler/​m_compact_appointments_helper.ts Removes an appointment-data suppression.
packages/​devextreme/​js/​__internal/​grids/​pivot_grid/​field_chooser/​m_field_chooser.ts Types retrieved field data.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​virtual_scrolling/​m_virtual_scrolling.ts Removes an each suppression.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​views/​columns_view.ts Removes row and form-data suppressions.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​validating/​m_validating.ts Removes an iteration suppression.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​keyboard_navigation/​m_keyboard_navigation.ts Removes a filter-callback suppression.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​editing/​m_editing.ts Removes a wrapper-filter suppression.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​context_menu/​m_context_menu.ts Removes a row-data suppression.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​column_state_mixin/​column_state_mixin.ts Removes a row-data suppression.
packages/​devextreme/​js/​__internal/​grids/​grid_core/​adaptivity/​adaptivity.ts Removes a form-item data suppression.
packages/​devextreme/​js/​__internal/​draggable.ts Removes a scrollable-data suppression.
packages/​devextreme/​js/​__internal/​core/​utils/​m_type.ts Adds the internal deferred type predicate.
packages/​devextreme/​js/​__internal/​core/​utils/​m_dom.ts Removes a filter-callback suppression.
packages/​devextreme/​js/​__internal/​common/​core/​animation/​fx.ts Uses typed animation data and removes suppression.

Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings October 22, 2026 15:42
@pharret31
pharret31 force-pushed the typescript/core/element_wrapper_dts branch from 27c1c8c to 809a69e Compare October 22, 2026 15:42

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The declaration updates match existing renderer behavior, and the accompanying type-only cleanups have no identified blocking issues.

No open issues 🎉

Review effort: Balanced

@pharret31
pharret31 force-pushed the typescript/core/element_wrapper_dts branch 2 times, most recently from b956a95 to fe3c96e Compare October 22, 2026 16:46
Copilot AI balanced review requested due to automatic review settings October 22, 2026 16:46

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The no-argument data() declaration omits the runtime’s undefined result for empty selections, allowing unsafe operations to type-check.

No open issues 🎉

Review effort: Balanced

@pharret31
pharret31 force-pushed the typescript/core/element_wrapper_dts branch from fe3c96e to c849f5e Compare October 22, 2026 17:42
Copilot AI balanced review requested due to automatic review settings October 22, 2026 17:42

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The public declarations use NoInfer, which is unavailable in the supported TypeScript 4.9.5 compiler.

No open issues 🎉

Review effort: Balanced

@pharret31
pharret31 force-pushed the typescript/core/element_wrapper_dts branch from c849f5e to c454be4 Compare October 22, 2026 18:22
Copilot AI balanced review requested due to automatic review settings October 22, 2026 18:22

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The declaration updates and consumer migrations are consistent, and the focused runtime change has regression coverage with no blocking issues identified.

No open issues 🎉

Review effort: Balanced

@pharret31
pharret31 force-pushed the typescript/core/element_wrapper_dts branch from c454be4 to e45b523 Compare October 22, 2026 18:35
Copilot AI balanced review requested due to automatic review settings October 22, 2026 18:35

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The shared public declaration changes affect many consumers and need compiler and CI validation before final human approval.

No open issues 🎉

Review effort: Balanced

@pharret31 pharret31 changed the title Core: declare data() getter, each/filter/not arguments and the isDeferred type guard in the d.ts Core: declare data() getter, each/filter/not arguments in the d.ts Oct 22, 2026
Comment thread packages/devextreme/js/core/renderer.d.ts Outdated
Comment thread packages/devextreme/js/core/renderer.d.ts
Comment thread packages/devextreme/js/__internal/ui/calendar/calendar.base_view.ts Outdated
Comment thread packages/devextreme/js/__internal/ui/splitter/utils/component.ts Outdated
Comment thread packages/devextreme/testing/tests/DevExpress.core/renderer.tests.js Outdated
Comment thread packages/devextreme/js/core/renderer.d.ts Outdated
Copilot AI balanced review requested due to automatic review settings October 23, 2026 10:33
@pharret31
pharret31 force-pushed the typescript/core/element_wrapper_dts branch 2 times, most recently from e45b523 to deeb5db Compare October 23, 2026 10:33

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The type updates and small chaining fixes are consistent, with focused regression coverage and no blocking issues identified; tests were not executed.

No open issues 🎉

Review effort: Balanced

@pharret31
pharret31 force-pushed the typescript/core/element_wrapper_dts branch from deeb5db to d4f90c0 Compare October 23, 2026 10:37
@pharret31
pharret31 added this pull request to the merge queue Oct 23, 2026
Merged via the queue into DevExpress:main with commit 20b3e43 Oct 23, 2026
284 of 287 checks passed
@pharret31
pharret31 deleted the typescript/core/element_wrapper_dts branch October 23, 2026 13:17
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.

5 participants