Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

`aggregatedCell` not typed against bound `cellComponents` in `createAppColumnHelper`

Abierto
#6,583 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
react, typescript
Área
frontend

Línea de trabajo

Empieza en packages/react-table/src/createTableHook.tsx, especialmente en AppColumnDefBase y en el tipo ColumnDef_RowAggregation de rowAggregationFeature, y luego reproduce la discrepancia en el TypeScript playground enlazado. Verifica que aggregatedCell reciba la misma tipificación del componente de celda enlazado que cell, y añade o ejecuta una prueba de comprobación de tipos específica si el repositorio proporciona una.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

TanStack Table version

v9.2.4

Framework/Library version

React v19.2.6

Describe the bug and the steps to reproduce it

createTableHook's AppColumnDefBase enhances cell/header/footer with the
registered cellComponents/headerComponents, via:

Omit<IdentifiedColumnDef<...>, 'cell' | 'header' | 'footer'> & { cell?: ..., header?: ..., footer?: ... }

aggregatedCell (added by rowAggregationFeature's ColumnDef_RowAggregation) is not
included in that Omit list, so it stays typed against the plain, unenhanced CellContext.
Accessing a bound cell component works fine inside cell on a column, but fails inside
aggregatedCell on the exact same column.

Steps to reproduce:

  1. Register a cellComponents map via createTableHook (e.g. { NumberCell }).
  2. Create a column with both cell and aggregatedCell, each destructuring cell and
    accessing cell.NumberCell.
  3. cell.NumberCell type-checks inside cell, but TypeScript reports
    "Property 'NumberCell' does not exist on type 'Cell<...>'" inside aggregatedCell.

Confirmed by reading packages/react-table/src/createTableHook.tsx directly (not just from
the compiled .d.ts) — AppColumnDefBase's Omit list is 'cell' | 'header' | 'footer' only.

Your Minimal, Reproducible Example - (Sandbox Highly Recommended)

https://www.typescriptlang.org/play/?#code/JYWwDg9gTgLgBAbwFBzgYygUwIY0wFWwCMAbTACQggGsAaFOGYsgMRxgFcsBne1KCAHcAggHNRWUbmAQAdm1xdMfdBBIcQsgOICOYYLNELOWFRnaYdEPZgAmAJSEBZCLcwkV2cZOlyWsgH0QHFkkAF84ADMBEDgAcgABJlluJjRqAHosbDQYAFomUkw4pCQYAE8wTDhHQTgAXkQ4CWswAC44VKgDUQBuOAA3bHVMDtkNIkwoODDSyI5ZXJlZOAA5CamAYXcSAAoASkQGLBMV8ZIScNK0OVSo9iVuBsZmTGNH3eR+ITEJTCkYMt3qYGDd1JorHoesDlAwWjYHM5XO4OuZcJZdFVEYIXG49vtPN5-r55CkOgg4MFsLIOl4-gCgYEqStZmF9tdbvAKWi8MIwGBNmoNLJyO4qtMIo0eQRXpQaJ8GJEHjwzDtBeA5JhZDBuOS1hsoNsLjNwuykDcUvAABZiqbPaV8gVCzSikjigA8tQAfAdSja3VMAHQ5NCYbjcaC7OJDEZxWhHVDAWwdaPDDjFVUXDqfdA7GaHepe3MXQPrECTQ07eMZDJwADyAGkGHSfIC-DT4sy482iQC7EaSNnuXm2Q0i6GS2WKwPTUggA

Screenshots or Videos (Optional)

No response

Do you intend to try to help solve this bug with your own PR?
export function createAppColumnHelper<TData extends RowData>() {
    const helper = createRawColumnHelper<TData>()

    function accessor<
        TAccessor extends AccessorFn<TData> | DeepKeys<TData>,
        TValue extends TAccessor extends AccessorFn<TData, infer TReturn>
            ? TReturn
            : TAccessor extends DeepKeys<TData>
              ? DeepValue<TData, TAccessor>
              : never
    >(
        accessorArg: TAccessor,
        column: Omit<
            AppColumnDefBase<typeof appFeatures, TData, TValue, CellComponents, HeaderComponents>,
            'aggregatedCell'
        > & {
            aggregatedCell?: AggregatedCellRender<TData, any>
        } & (TAccessor extends AccessorFn<TData> ? { id: string } : {})
    ): TAccessor extends AccessorFn<TData>
        ? AccessorFnColumnDef<typeof appFeatures, TData, TValue>
        : AccessorKeyColumnDef<typeof appFeatures, TData, TValue> {
        const { aggregatedCell, ...rest } = column

        return helper.accessor(
            accessorArg as never,
            {
                ...rest,
                ...(typeof aggregatedCell === 'function'
                    ? {
                          aggregatedCell: (ctx: CellContext<typeof appFeatures, TData, TValue>) =>
                              aggregatedCell(
                                  ctx as unknown as AppCellContext<
                                      typeof appFeatures,
                                      TData,
                                      any,
                                      CellComponents
                                  >
                              )
                      }
                    : { aggregatedCell })
            } as never
        ) as never
    }

    return { ...helper, accessor }
}
Terms & Code of Conduct
  • I agree to follow this project's Code of Conduct
  • I understand that if my bug cannot be reliable reproduced in a debuggable environment, it will probably not be fixed and this issue may even be closed.
Lenguaje dominante
TypeScript
Estrellas
28.4k
Forks
3.6k
Merge medio
1 d 1 h
PR fusionados (30 d)
7

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de TanStack/table

Todos los issues de TanStack/table

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.