Skip to content

Replace unsafe/legacy types in ui-kit/experimental #705

Description

@fpigeonjr

Parent

#586

What to build

Replace unsafe and legacy TypeScript types (any, unsafe function types, wrapper-object types) across src/ui-kit/experimental (~134 ESLint findings).

Inventory the current findings first (npx eslint src/ui-kit/experimental), then replace each any/unsafe-function-type usage with a precise type or a justified, narrowly-scoped alternative, following the same approach used in #702 (utilities/directives/layout/misc slice of the same parent issue).

Largest concentrations of findings as of this writing:

  • patterns/layout/architecture/service/service-property.ts (17)
  • date-range-v2/datepicker/calendar.ts (14)
  • hierarchical/hierarchical-test-service.spec.ts (10)
  • listbox/listbox.component.ts (9)
  • hierarchical/hierarchical/hierarchical.component.ts, hierarchical/autocomplete/autocomplete.component.ts, hierarchical/selected-result/selected-result.component.ts, patterns/layout/architecture/store/datastore.ts (7-8 each)
  • aria/abstract-combobox/abstract-combobox.ts, hierarchical/hierarchical-tree-grid/data-source.ts, input-mask/input-mask.component.ts (4-6 each)
  • Remaining findings scattered across aria/abstract-grid, aria/utils/events.ts, date-range-v2, dollar, video-player, actions-list, button-next, patterns/layout model/service/component files, search, tabs, title, and spec files

Given the size of this area, expect this to likely produce a larger PR than the other sub-issues; consider further splitting (e.g. hierarchical/* vs. patterns/layout/* vs. everything else) once work begins if a single PR proves unwieldy.

Acceptance criteria

  • Unsafe-type findings in src/ui-kit/experimental are inventoried before implementation
  • any usages in this directory are replaced with precise types or justified, narrowly scoped alternatives
  • Any wrapper-object or unsafe function types in this directory are replaced with safe equivalents
  • Public API and consumer-compiled source compatibility are preserved (no breaking signature changes)
  • Relevant component tests and the full test-app suite remain green
  • The root ESLint warning baseline (eslint-baseline.json) is lowered to reflect the resolved findings

Blocked by

None - can start immediately

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    maintenanceRepo maintenance / toolingtech-debtTechnical debt cleanup work

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions