TS extends keyword


`extends` means - it gets all from its parent
```typetype Entry = "In" | "Out";type InOrOut<T> = T extends `fade${infer R}` ? R : never;// type I = "In"type I = InOrOut<"fadeIn">;  // type O = "Out"type O = InOrOut<"fadeOut">;```




> [What's the difference between 'extends' and 'implements' in TypeScript](https://stackoverflow.com/questions/38834625/whats-the-difference-between-extends-and-implements-in-typescript)




