feat(table): typescript/strong typing of cell templates
- 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`:

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
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