TypeScript — это типизированный надмножество JavaScript, которое компилируется в простой JavaScript. Он добавляет в JavaScript дополнительные типы, классы, интерфейсы и модули.
Объектно-ориентированное программирование — это парадигма программирования, использующая «объекты»: структуры данных, состоящие из полей данных и методов вместе с их взаимодействиями.
Функция некоторых объектно-ориентированных языков программирования, в которой класс может наследовать поведение и функции более чем одного суперкласса или базового класса.
Наследование прототипов повторно использует поведение путем клонирования существующих объектов, которые служат прототипами. JavaScript - очень хороший пример наследования на основе прототипов на практике.
C++ — это язык программирования общего назначения. Первоначально он был разработан как расширение C и имеет похожий синтаксис, но теперь это совершенно другой язык.