Runtime — czas wykonania programu. I tutaj mógłbym zakończyć wpis, ale postanowiłem, że go jeszcze trochę rozwinę. Co to właściwie znaczy “runtime”?
“Błąd został zauważony w czasie Runtime, czy Kompilacji?”
Zdefiniujmy dwa ważne procesy:
Kompilacja, czyli stworzenie pliku programu, na podstawie kodu źródłowego, który będzie mógł być uruchomiony w środowisku uruchomieniowym.
Przykład: Kod w TypeScript, aby został uruchomiony w przeglądarce, musi zostać skompilowany za pomocą kompilatoratsc
do składni języka JavaScript.
oraz:
Runtime, czyli czas liczony od momentu, w którym program zostaje uruchomiony, działając w swoim środowisku uruchomieniowym, aż do momentu jego wyłączenia.
Przykład: Aplikacja uruchomiona w przeglądarce posiada swój runtime, dopóki użytkownik nie zamknie taba.
“Runtime do uruchomienia języka X”
Często w rozmowie między developerami, możemy usłyszeć, że słowem “runtime” zostało opisane “narzędzie”, a może nawet środowisko, które uruchamia programy.
Przykłady z najpopularniejszych narzędzi typu “runtime”:
- “Node.js”
- Oryginalny opis projektu: Node.js JavaScript runtime
- https://github.com/nodejs/node
- “Deno”
- Oryginalny opis projektu: A secure runtime for JavaScript and TypeScript
- https://github.com/denoland/deno
- Java Runtime Environment

Błędy
z kompilacji pliku napisanego w TypeScript do składni JavaScript:
TS2322: Type '(p: any) => void' is not assignable to type 'void'.
TS2339: Property 'url' does not exist on type 'Page'.
TS2307: Cannot find module './service'.
TS2529: Duplicate identifier 'Promise'.
z runtime-u aplikacji napisanej w JavaScript uruchomionej w przeglądarce:
Uncaught TypeError: undefined is not a function
Uncaught ReferenceError: Invalid left-hand side in assignment
Uncaught TypeError: Converting circular structure to JSON
Uncaught TypeError: Cannot read property ‘foo’ of null
Uncaught RangeError: Maximum call stack size exceeded
Powiązane artykuły
- compose vs pipe
- Dobre praktyki w JavaScript: $ (dolar) w nazwie zmiennej
- Pytanie rekrutacyjne nr 2: Jak optymalizowałbyś zasoby strony internetowej? — JavaScript Developer
- Pytanie rekrutacyjne nr 1: Stwórz pętle, która będzie wyświetlała liczby od 10 do 0 — JavaScript Developer
- Angular: Krótka historia o tym, jak złamałem system
- Jak zbudować licznik czasu?
- Jak zbudować widget prezentujący testimoniale?
- Angular: Jak zamockować dane do usługi HTTP?
- Jak wyświetlić liczbę osób lajkujących nasz fanpage?
- DeviceLightEvent w ogóle i w szczególe
- Jak przerobić stronę na Progressive Web App?
- Narzędzia Świata: webpack-unused
- Dziedziczenie obiektów w JavaScript (bez użycia klas)
- "JavaScript" to nie to samo co "Java"
- Historia języka JavaScript
- Popularny błąd w obsłudze zdarzeń w JavaScript
- Moja przygoda z monadami w JavaScript
- XMLHttpRequest, czyli natywny AJAX
- Narzędzia Świata: super-event-emitter.js
- Historia loga języka JavaScript
- ECMAScript 6. Dlaczego warto spróbować już dziś?
- Narzędzia Świata: pokemon-picker
- Backbone.js: problem z unikalnymi właściwościami obiektowymi
- Narzędzia Świata: more.js
- eval() czy JSON.parse() - porównanie szybkości
- Uważaj na "use strict", czyli Strict mode w praktyce
- Funkcja to czy obiekt, któż to wie?
- Wykrywanie wersji interpretera JavaScript
- bind() obok call() i apply() jako piękna natura języka
- ECMAScript 5 — kiedy będzie codziennością?
- CoffeeScript + Windows
- Dodawanie metody do obiektu Function poprzez "addMethod"
- Własna biblioteka cross-platform w JavaScript
- Node vs Element