angular / angular/components

feat(table): typescript/strong typing of cell templates

Abierto
#22,290 13 comentarios 109 reacciones 0 asignados Ver en GitHub
area: cdk/table feature P3
Lenguaje dominante
TypeScript
Estrellas
25k
Forks
6.8k
Merge medio
1 d 8 h
PR fusionados (30 d)
91

Descripción

#### Feature Description

Currently, `*matCellDef` types the resulting variable as `any`:

Screenshot 2021-03-19 at 11 29 32

This issue is an attempt to bring https://github.com/angular/components/issues/16273 back in discussion, which has been closed as Ivy wasn't yet available.

There has been some progress on several fronts:

- Ivy now has `strictTemplates` mode.
- The experimental Ivy powered language server is almost ready to go.

It appears that the approach described in this comment https://github.com/angular/angular/issues/28731#issuecomment-782806178 might allow this to be implemented.

#### Use Case

As we've been converting more code to use Material Data Tables, the lack of strong typing has been really problematic, and it feels like a downgrade in developer experience compared to regular tables with `*ngFor`.

Further motivation for this has been described in:

https://github.com/angular/components/issues/16273
https://github.com/angular/angular/issues/28731

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza revisando el contexto de strictTemplates de Angular y las discusiones enlazadas en angular/components#16273 y angular/angular#28731, especialmente el enfoque de implementación referenciado. Determina los puntos de entrada afectados de tipado de plantillas de celdas de la tabla de Material y cómo los gestiona el language service. Se considera terminado cuando las variables de las plantillas de celdas reciben tipos útiles en tiempo de compilación en lugar de any, con cobertura para los casos de plantilla relevantes.

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

Evaluación

Stack tecnológico
angular, typescript
Área
developer-experience, frontend
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.