// Here, Dog is a subclass of Animal, so it's allowed to assign a Dog object to an Animal variable. let animal: Animal = getDog(); // Valid: Dog is a subclass of Animal //When you only care about ...
At that time before TypeScript 2.8, there wasn't a clean solution about how to "Omit" some keys from an existing interface. But now we can use the new conditional type "Exclude" to improve type safety ...