microsoft / microsoft/TypeScript

Design Meeting Notes, 2026-06-23

Ouverte
#63,674 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Design Notes
Langage dominant
Go
Étoiles
111k
Forks
14.3k
Merge moyen
2 j 4 h
PR mergées (30 j)
132

Description

isolatedDeclarations and Control Flow Analysis

https://github.com/microsoft/typescript-go/pull/4367

  • Want to be able to infer types for trivial expressions in isolatedDeclarations in a function block.
    • Specifically in discussion is if there are no return statements.
  • But what happpens when you have a never-returning call? That can cause a never.
  • Feels like anything with multiple statements in the body is questionable.
  • We could make a special-case for () => {}.
    • Probably enough to just say "just write void".
  • Feels bad to say we can't come up with a type for () => {}
    • Why? Feels like it's not a big deal?
    • Well it's even more trivial than a single expression being returned.
    • Sure, but the reason we added trivial expression inference was because people often have bigger structures of objects that are nested. So the triviality was not really about writing small expressions.
  • One reason why we didn't do it (we think) is that we don't want to close the door to ourselves on how void vs. undefined is inferred for no-return-expression functions.

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

Commencez par lire la discussion de l’issue et la pull request associée, microsoft/typescript-go#4367. Clarifiez le comportement attendu de isolatedDeclarations pour les corps de fonction sans instructions return, notamment les appels qui ne retournent jamais et la distinction entre void et undefined. Le travail est considéré comme terminé lorsque le projet a défini un comportement convenu et un périmètre d’implémentation correspondant.

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é
Calme
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

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