microsoft / microsoft/TypeScript
Design Meeting Notes, 2026-06-23
Personne n'a encore pris cette issue.
- 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
isolatedDeclarationsin 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 anever. - 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".
- Probably enough to just say "just write
- 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
voidvs.undefinedis inferred for no-return-expression functions.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- 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