Фильтрация по интерфейсу

TypeScript Лёгкий interfaces

Задача «Фильтрация по интерфейсу»

Напишите функцию filterByInterface, которая принимает массив объектов и интерфейс (в виде строки) и возвращает новый массив, содержащий только те объекты, которые имеют все поля, определённые в интерфейсе (интерфейс задан как объект с ключами и значениями — типами полей). Поля в объекте могут быть лишними, но все обязательные поля интерфейса должны присутствовать. Для простоты считаем, что интерфейс всегда содержит только строковые поля. Если в объекте нет хотя бы одного обязательного поля, он отбрасывается.

Формат ввода

Первая строка — число n (количество объектов). Затем n строк, каждая в формате JSON-объекта. Затем строка — JSON-объект, представляющий интерфейс (ключи — названия полей, значения — строки 'string').

Формат вывода

Вывести JSON-массив отфильтрованных объектов.

main.ts