Który język jest nadzbiorem JavaScriptu, dodaje statyczne typowanie zmiennych, a jego kod przed uruchomieniem w przeglądarce jest kompilowany (transpilowany) do JavaScriptu?
TypeScript, rozwijany przez Microsoft, rozszerza JavaScript o deklaracje typów. Każdy poprawny kod JavaScript jest też poprawnym kodem TypeScript, stąd określenie nadzbiór. Typ podaje się po dwukropku, na przykład let cena: number = 25;, a kompilator zgłosi błąd, gdy do takiej zmiennej trafi tekst.
Przeglądarka nie wykonuje TypeScriptu bezpośrednio. Kompilator tsc zamienia pliki .ts na zwykły JavaScript, który dopiero trafia na stronę, a deklaracje typów są przy tym usuwane. Z TypeScriptu korzysta między innymi framework Angular. Zaletą jest wychwytywanie pomyłek jeszcze przed uruchomieniem programu.
Dzięki typom edytor kodu podpowiada też nazwy właściwości i parametrów, co przyspiesza pisanie większych aplikacji.
Każdy z błędnych wyborów to język z własną składnią, niezwiązany z JavaScriptem. Python ma dynamiczne typowanie, choć pozwala dopisywać podpowiedzi typów, a jego kod uruchamia interpreter Pythona, zwykle na serwerze lub w konsoli. Nie jest rozszerzeniem JavaScriptu i nie kompiluje się do niego w typowym zastosowaniu.
Perl to język skryptowy znany z przetwarzania tekstu i dawnych skryptów CGI. PHP działa po stronie serwera i generuje HTML wysyłany do przeglądarki. Oba poprzedzają nazwy zmiennych znakiem dolara i żaden nie jest nadzbiorem JavaScriptu.
Wszystkie trzy cechy z treści zadania - nadzbiór JS, statyczne typy i kompilacja do JS - opisują TypeScript.
Rozpoznając taki język, warto zwrócić uwagę na rozszerzenie plików: kod TypeScript zapisuje się w plikach z rozszerzeniem ts, a po kompilacji powstają z nich pliki js.