Co nowego w TypeScript v5?

Co nowego w TypeScript v5?

hejto.pl
Dobry wieczorek! Głośno w branży się zrobiło ostatnio przez TypeScript v5. Spójrzmy co tam się takiego zadziało:
Decorators
Spory czas temu rozpoczęły się prace nad standaryzacją dekoratorów jako elementów ECMAScript. Ekipa stojąca za TypeScriptem stwierdziła, że nadszedł czas, aby kompilator zaczął je wspierać. Wszystko super, ale w porównaniu do tzw. legacy decorators to wypadają one słabiutko. Nowych dekoratorów nie można definiować na parametrach funkcji. Nie są one też kompatybilne z flagą --emitDecoratorMetadata, czyli to już podwójny strzał w stopę. Ma się to kiedyś (może) zmienić, ale na ten moment wygląda to słabo.
Support for export type *
Coś małego, a cieszy. Dotychczas nie mogliśmy eksportować jednocześnie wszystkich typów z danego modułu. Musieliśmy to robić pojedynczo, wyliczając każdy z nich. Może nie brzmi to tak źle, ale bardzo łatwo było zapomnieć o dopisaniu nowego typu do wyrażenia eksportującego. Niedługo nie będzie nam to już zaprzątać głowy.
All enums Are Union enums
Muszę się przyznać, że nie miałem pojęcia o tym, że w TypeScript istnieją dwa rodzaje enumów. Z tego co wyczytałem to jako pierwsze pojawiły się enumy liczbowe. Były dość ograniczone np. według kompilatora porównywanie takiego enuma z dowolną liczbą było operacją legalną nawet jeżeli taka liczba nie występowała w spisie wartości. Później pojawiły się bardziej zaawansowane enumy, w których mogły występować już ciągi znaków. Dodatkowo, dla każdego członka generowany był oddzielny typ, co pozwalało na tworzenie zbiorów. Niestety, w przypadku gdy próbowaliśmy zdefiniować wartość członka za pomocą wyrażenia dynamicznego to TypeScript cofał się do tej pierwotnej implementacji. Niedługo się to częściowo zmieni. Częściowo, bo jeżeli użyjemy wyrażenia dynamicznego to wynikiem musi być nadal liczba. Not great, not terrible.
const Type Parameters
Przydatne przy implementacji funkcji generycznych. Użycie słowa kluczowego const przy parametrze funkcji zabezpiecza przed utratą dokładności typu. Przypomina to trochę zastosowanie satisfies. Normalnie jeżeli przekazywalibyśmy do funkcji coś, co jest podzbiorem oczekiwanego typu to w odpowiedzi dostalibyśmy oczekiwany typ. Po użyciu słowa const otrzymamy ten sam podzbiór. Neat.
Na koniec trochę autopromocji. W najbliższym czasie będę organizował darmowy webinar przybliżający tajniki mechanizmu refleksji każdemu adeptowi programowania w TypeScript. Jeżeli nie wiesz do czego może on służyć i po co Ci ta wiedza, a korzystasz z NestJS i wstrzykiwania zależności to już wiesz do czego może służyć i po co Ci ta wiedza. ( ͡~ ͜ʖ ͡°) Ktoś zainteresowany?
#typescript #magicznytypescript

Komentarze (2)

WilczekCK

Chętnie, webinar z TS zawsze spoko.

Preczytałem ostatnio książke 'Typescript na poważnie', ale coś czuje że to nie jest ostatni raz i każda forma rozszerzeniaa wiedzy z TSa jest warta poświęcenia czasu

BigKr4SHh

Również jestem zainteresowany webinarem ( ͡~ ͜ʖ ͡°)

Zaloguj się aby komentować