microsoft / microsoft/TypeScript

Design Meeting Notes, 2026-06-23

Aperta
#63,674 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Design Notes
Lingua principale
Go
Stelle
111k
Fork
14.3k
Merge medio
1g 19h
PR unite (30g)
117

Descrizione

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.

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia leggendo la discussione dell’issue e la pull request collegata, microsoft/typescript-go#4367. Chiarisci il comportamento previsto di isolatedDeclarations per i corpi delle funzioni senza istruzioni return, comprese le chiamate che non restituiscono mai e la distinzione tra void e undefined. Il lavoro è completato quando il progetto ha concordato il comportamento e il relativo ambito di implementazione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
typescript
Ambito
compilers
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Tranquilla
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.