2 ms·
Is (string & {}) semantically intuitive or is it kind of a hack? I don’t understand what it’s supposed to mean.
by Waterluvian 3y ago
Is (string & {}) semantically intuitive or is it kind of a hack? I don’t understand what it’s supposed to mean.
- skybrian 3y agoIt's a useful hack. In JavaScript, there is no value that's both a string and an object. At runtime, it will just be a string. You can use it like a string and it will type-check, because it's a string plus some extra compile-time baggage, sort of like you subclassed the string type. ('&' is a subtype operation.) When converting something to this type, it will fail unless you cast it, but it's a compile-time cast. At runtime, there's no conversion. This is essentially "lying" to the type checker in order to extend it.