// You're not required to declare the type for a variable and you can just
var offset = 0;
// But, if you do, this next variable will always remain an 'unsigned int' - even at runtime.
// You'll never see NaN ("Not a Number") runtime errors again.
// This variable is 'unsigned' so it's also guaranteed to never be negative.
unsigned int pageHeight = $(document).height();
"TypeScript's 'type erasure' vs JS++'s 'type guarantee' would be a big reason to use JS++ over TypeScript."
You'll be surprised how JS++ works 100% of the time, even in the most obscure corner cases.