Parent
#586
What to build
Replace unsafe and legacy TypeScript types (any, unsafe function types, wrapper-object types) across src/ui-kit/form-controls (~233 ESLint findings, the largest remaining area).
Inventory the current findings first (npx eslint src/ui-kit/form-controls), 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:
autocomplete/autocomplete.component.ts (28)
upload-v2/upload-v2.component.ts (27)
autocomplete-multiselect/autocomplete-multiselect.component.ts (24)
autocomplete-multiselect/autocomplete-cache.ts (17)
upload/upload.component.ts (13)
sam-form-control/sam-form-control.ts (11)
date/date.component.ts (10)
sam-sds-autocomplete/autocomplete-search/autocomplete-search.component.ts (9)
checkbox/checkbox.component.ts, date-range/date-range.component.ts, select/select.component.ts, textarea/textarea.component.ts (8 each)
- Remaining findings across
sam-sds-autocomplete/autocomplete, sam-sds-autocomplete/selected-result, text/text.component.ts, date-time, number, radiobutton, time, toggle-switch, autocomplete.service.ts, and numerous spec files
Given the size of this area (the largest of all sub-issues, dominated by the autocomplete component family), expect this to need further splitting once work begins — e.g. autocomplete family (autocomplete, autocomplete-multiselect, sam-sds-autocomplete) as one PR and upload/date/select/textarea/etc. as another, rather than attempting all 233 findings in a single PR.
Acceptance criteria
Blocked by
None - can start immediately
Parent
#586
What to build
Replace unsafe and legacy TypeScript types (
any, unsafe function types, wrapper-object types) acrosssrc/ui-kit/form-controls(~233 ESLint findings, the largest remaining area).Inventory the current findings first (
npx eslint src/ui-kit/form-controls), then replace eachany/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:
autocomplete/autocomplete.component.ts(28)upload-v2/upload-v2.component.ts(27)autocomplete-multiselect/autocomplete-multiselect.component.ts(24)autocomplete-multiselect/autocomplete-cache.ts(17)upload/upload.component.ts(13)sam-form-control/sam-form-control.ts(11)date/date.component.ts(10)sam-sds-autocomplete/autocomplete-search/autocomplete-search.component.ts(9)checkbox/checkbox.component.ts,date-range/date-range.component.ts,select/select.component.ts,textarea/textarea.component.ts(8 each)sam-sds-autocomplete/autocomplete,sam-sds-autocomplete/selected-result,text/text.component.ts,date-time,number,radiobutton,time,toggle-switch,autocomplete.service.ts, and numerous spec filesGiven the size of this area (the largest of all sub-issues, dominated by the autocomplete component family), expect this to need further splitting once work begins — e.g. autocomplete family (
autocomplete,autocomplete-multiselect,sam-sds-autocomplete) as one PR and upload/date/select/textarea/etc. as another, rather than attempting all 233 findings in a single PR.Acceptance criteria
src/ui-kit/form-controlsare inventoried before implementationanyusages in this directory are replaced with precise types or justified, narrowly scoped alternativeseslint-baseline.json) is lowered to reflect the resolved findingsBlocked by
None - can start immediately