diff --git a/packages/x-data-grid/src/hooks/features/sorting/useGridSorting.ts b/packages/x-data-grid/src/hooks/features/sorting/useGridSorting.ts index ac8fea102aa88..f90c70704bd46 100644 --- a/packages/x-data-grid/src/hooks/features/sorting/useGridSorting.ts +++ b/packages/x-data-grid/src/hooks/features/sorting/useGridSorting.ts @@ -190,7 +190,7 @@ export const useGridSorting = ( (field, direction, allowMultipleSorting) => { const column = apiRef.current.getColumn(field); const sortItem = createSortItem(column, direction); - let sortModel: GridSortItem[]; + let sortModel: GridSortModel; if (!allowMultipleSorting || props.disableMultipleColumnsSorting) { sortModel = sortItem?.sort == null ? [] : [sortItem]; } else { diff --git a/packages/x-data-grid/src/models/gridSortModel.ts b/packages/x-data-grid/src/models/gridSortModel.ts index 849f31ba6dce8..655c1650dce8b 100644 --- a/packages/x-data-grid/src/models/gridSortModel.ts +++ b/packages/x-data-grid/src/models/gridSortModel.ts @@ -37,4 +37,4 @@ export interface GridSortItem { /** * The model used for sorting the grid. */ -export type GridSortModel = GridSortItem[]; +export type GridSortModel = readonly GridSortItem[]; diff --git a/packages/x-data-grid/src/tests/DataGrid.spec.tsx b/packages/x-data-grid/src/tests/DataGrid.spec.tsx index c82da0c7f74e6..39f7f3d49c5fc 100644 --- a/packages/x-data-grid/src/tests/DataGrid.spec.tsx +++ b/packages/x-data-grid/src/tests/DataGrid.spec.tsx @@ -279,3 +279,10 @@ function ApiRefProMethods() { return null; } + +function ImmutableProps() { + const rows = [] as const; + const columns = [] as const; + const initialState = { sorting: { sortModel: [{ field: 'id', sort: 'asc' }] } } as const; + return ; +} \ No newline at end of file