Свойства интерфейсов в TypeScript

Пусть у нас есть интерфейс, описывающий юзера:

interface IUser { }

Давайте добавим в этот интерфейс свойства и их тип:

interface IUser { name: string; age: number; }

Теперь создаем объект интерфейса. Для этого объявляем переменную, в которой указываем в качестве типа выбранный интерфейс:

let user: IUser;

Теперь мы можем прописать значения для свойств, заданных в интерфейсе:

let user: IUser = { name: 'john', age: 30 }

Если теперь попытаться создать юзера, не задав ему необходимых свойств, то мы увидим ошибку:

let user: IUser = { name: 'john', //!! ошибка }

Также ошибка будет, если попытаться сделать лишнее свойство:

let user: IUser = { name: 'john', surn: 'smit', //!! ошибка age: 30 }

Создайте интерфейс IMath со свойствами num1 и num2.

Реализуйте объект calc созданного выше интерфейса.