Ostatnio wyszedł Typescript 3.7, który zawiera kilka oczekiwanych przez programistów funkcjonalności. Dziś chciałbym opowiedzieć o dwóch nowościach na które sam czekałem i które mogą uprościć tworzony przez nas kod czyli Optional Chaining i Nullish Coalescing.
Optional chaining
Na sam początek funkcjonalność, którą możemy znaleźć np.: w języku Swift i pozwala na bardziej zwięzłe pisanie kodu. Kiedy piszemy kod i opakowujemy dane w obiekty mamy możliwość korzystania z opcjonalnych pól np.:
Problem pojawia się gdy chcemy się dostać do tych wartości. Aby to zrobić musimy sprawdzić czy nasze pola faktycznie mają odpowiednią wartość
Dzięki nowej funkcjonalności jesteśmy w stanie skrócić powyższy zapis do czytelniejszej formy
Jeśli pola obj.a i obj.b.b są różne od null lub undefined to dostaniemy wartość zmiennej, która znajduje się w tym obiekcie. jeżeli w którymkolwiek momencie okaże się, iż zmienne nie posiadają wartości to dostaniemy w wyniku wartość undefined
Oprócz możliwości dostania się do pola w obiekcie możemy również wykorzystać to do odwołania się do elementu w tablicy
Ostatnia możliwość to wywołanie funkcji
Nullish Coalescing
Druga nowość to Nullish Coalescing o którym myślę jako domyślnej wartości. Do tej pory mogliśmy ustawiać domyślną wartość na dwa sposoby
Oba sposoby mogą jednak powodować niechciane efekty uboczne np.:
Nawet jeżeli dopuszczamy wartość 0 jako poprawną to taki zapis powoduje, iż zostanie ona zastąpiona wartością domyślną. Oczywiście da się temu zapobiec dodając dodatkowe warunki ale wydłuża to niepotrzebnie kod. Nowy Nullish Coalescing zwróci wartość domyślną tylko jeżeli zmienna ma wartość null lub undefined. W każdym innym przypadku będzie to oryginalna wartość zmiennej
A jak wam się podobają nowe funkcjonalności? Zaktualizowaliście już Typescript'a w waszych projektach? Będziecie używać tych funkcjonalności czy może już z nich korzystacie? No i najważniejsze - za chwilę te nowości będą też dostępne w czystym JavaScript.