angular / angular/components

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

Ouverte
#22,290 13 commentaires 109 réactions 0 personnes assignées Voir sur GitHub
area: cdk/table feature P3
Langage dominant
TypeScript
Étoiles
25k
Forks
6.8k
Merge moyen
1 j 8 h
PR mergées (30 j)
91

Description

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

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par examiner le contexte strictTemplates d’Angular et les discussions associées dans angular/components#16273 et angular/angular#28731, en particulier l’approche d’implémentation qui y est référencée. Déterminez les points d’entrée concernés pour le typage des templates de cellules de la table Material et la manière dont le language service les gère. Le travail est considéré comme terminé lorsque les variables des templates de cellules reçoivent des types utiles à la compilation au lieu de any, avec une couverture des cas de template pertinents.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
angular, typescript
Domaine
developer-experience, frontend
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.