microsoft / microsoft/TypeScript

Bloomberg TS5.5-beta feedback

Offen
#58,523 1 Kommentar 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Discussion
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.4k
Ø Merge
1 T. 19 Std.
Gemergte PRs (30 T.)
117

Beschreibung

Acknowledgement
  • I acknowledge that issues using this template may be closed without further explanation at the maintainer's discretion.
Comment

We are in the process of evaluating the impact of TS 5.5 beta on Bloomberg code. Below are preliminary findings.

Overall this looks to be a low-impact release. The following changes were observed and seem to either be benign in nature or else improvements:

Change Impacts Release notes Packages affected
Stricter type-checking of partial objects Type checker This may be caused by improved type predicates 1
Improved narrowing of Array.isArray result Type checker This may be caused by improved type predicates 1
Exports are hoisted to the top of a module Emitted JS Not announced Most
Stricter type-checking of partial objects

We observed one project with a new type error in 5.5-beta, seemingly due to an improvement in type-checking for partials.

A minimal reproduction is here.

Improved narrowing of Array.isArray result

We observed for one project a new type error from trying to compare a string with an array after an Array.isArray check. The generics involved make a minimal reproduction infeasible but the essence of the code is:

if (Array.isArray(foo)) {
     If (foo !== "something") // raises a new error for some complex foo
}
Exports are hoisted to the top of a module

Module exports seem to be hoisted to the top of modules now. No runtime impact observed.

Object.defineProperty(exports, "__esModule", { value: true });
+exports.foo = foo;
 function foo() {
     // …
 }
-exports.foo = foo;

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Das Issue nennt keine Repository-Dateien oder Tests; beginne mit der verlinkten minimalen Reproduktion für TypeScript 5.5 beta und vergleiche das gemeldete Verhalten der Typprüfung mit den release notes. Untersuche anschließend das Beispiel zur Typverengung mit Array.isArray und die Reihenfolge der emittierten Exporte; als erledigt gilt die Aufgabe, wenn die Ergebnisse als erwartetes Verhalten oder als behebbare Regressionen bestätigt sind.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript, typescript
Bereich
compilers
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
30/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.