TypeScript is a superset of JavaScript that compiles to JavaScript. It adds optional static typing, classes, interfaces, and other features to JavaScript to help catch errors. TypeScript files use the .ts extension and can be compiled to JavaScript using the TypeScript compiler. Key features of TypeScript include static typing for variables, interfaces for defining object structures, classes and inheritance for object-oriented programming, and modules for code organization.