TypeScript Learn TypeScript With Some Practice About Interfaces, Generics, Classes, Abstracts and Types Annotations