Also weird that Typescript has exactly the mechanism you're talking about. Why are you acting like it doesn't?