In TypeScript, both an interface and a type alias can be used to describe a new named type. Since in most cases, almost all features are available in both, developers are sometimes using them interchangeably. This brings confusion and [...]
TypeScript adds a lot of useful utility types that help the developer do common type transformations.
Whether it's to make properties from a type optional, to create a new tuple, or to pick some properties from a type TypeScript [...]