Cast object to interface in TypeScript

There’s no casting in javascript, so you cannot throw if “casting fails”.Typescript supports casting but that’s only for compilation time, and you can do it like this: You can check at runtime if the value is valid and if not throw an error, i.e.: Edit As @huyz pointed out, there’s no need for the type assertion because isToDoDto is … Read more

How to iterate (keys, values) in JavaScript?

tl;dr In ECMAScript 2017, just call Object.entries(yourObj). In ECMAScript 2015, it is possible with Maps. In ECMAScript 5, it is not possible. ECMAScript 2017 ECMAScript 2017 introduced a new Object.entries function. You can use this to iterate the object as you wanted. Output ECMAScript 2015 In ECMAScript 2015, there is not Object.entries but you can use Map objects instead and iterate over them … Read more

Java rules for casting

When can a certain object be cast into another object? Does the casted object have to be a subtype of the other object? I’m trying to figure out the rules… Edit: I realized that I didn’t explain my issue at all: basically I am casting an object to an interface type. However, at run-time, I … Read more

Checking if a key exists in a JavaScript object?

Checking for undefined-ness is not an accurate way of testing whether a key exists. What if the key exists but the value is actually undefined? Expand snippet You should instead use the in operator: Expand snippet If you want to check if a key doesn’t exist, remember to use parenthesis: Expand snippet Or, if you … Read more

Create an empty object in JavaScript with {} or new Object()?

Objects There is no benefit to using new Object(); – whereas {}; can make your code more compact, and more readable. For defining empty objects they’re technically the same. The {} syntax is shorter, neater (less Java-ish), and allows you to instantly populate the object inline – like so: Arrays For arrays, there’s similarly almost no benefit to ever using new Array(); over []; – … Read more

How to destroy a JavaScript object?

You could put all of your code under one namespace like this: Using the delete keyword will delete the reference to the property, but on the low level the JavaScript garbage collector (GC) will get more information about which objects to be reclaimed. You could also use Chrome Developer Tools to get a memory profile of your … Read more

C++ calling base class constructors

The short answer for this is, “because that’s what the C++ standard specifies”. Note that you can always specify a constructor that’s different from the default, like so: The default constructor of the base class is called only if you don’t specify which one to call.