microsoft / microsoft/TypeScript

Idea: Can declaration emit synthesize type aliases?

Ouverte
#44,045 5 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Domain: Performance Experimentation Needed Suggestion
Langage dominant
Go
Étoiles
111k
Forks
14.4k
Merge moyen
1 j 19 h
PR mergées (30 j)
117

Description

Object types can be very large and in (e.g.) a react project that makes heavy use of type inference, it's not uncommon to have to refer to a type that is either not imported or is simply anonymous (e.g. a props type). When these appear in multiple places in a declaration file, they tend to expand it considerably. Perhaps we could just synthesize type aliases for them?

  • We'd have to be careful not to change the exported API shape
  • We could use a heuristic to skip the work for small types (e.g. < 20 characters)
  • Even if we didn't wait until the second use of a type to decide to extract it, we'd be adding ~4 tokens per type (type id = and id at the use site)

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

L’issue propose de synthétiser des alias de type lors de l’émission des déclarations pour les grands types d’objet anonymes répétés. Aucun fichier, test ou point d’entrée n’est nommé ; commencez par cartographier l’implémentation de l’émission des déclarations et évaluez l’heuristique de taille indiquée. Le travail est considéré comme terminé lorsque l’expansion des fichiers de déclaration est réduite sans modifier la forme de l’API exportée.

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

Évaluation

Stack technique
typescript
Domaine
compilers
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
30/100

Recevez les nouvelles issues par e-mail

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