typescript-hacks Functions π Inverts object's keys and values π Validates keys of two types π Constrains objects within condition π Converts Union to Intersection type π Constrains numbers by types π Makes deep readonly