Everything covered in http://www.typescriptlang.org/Handbook