typescript function filterArrayByKey<T extends object, K extends keyof T>(items: T[], key: K): T[] { return items.filter(item => item[key] !== undefined && item[key] !== null); }
* Типизировать функцию, которая принимает массив объектов и ключ,
typescript function filterArrayByKeyT extends object, K extends keyof T(items: T[], key: K): T[] { return items.filter(item => item[key] !== undefined && item[key] !== null); }
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
/**
- Типизировать функцию, которая принимает массив объектов и ключ,
- возвращает массив объектов, где есть этот ключ/свойство **/ const filterArrayByKey = (items, key) => { return items.filter((item) => item[key] !== undefined && item[key] !== null); };
Ответ
typescript function filterArrayByKey<T extends object, K extends keyof T>(items: T[], key: K): T[] { return items.filter(item => item[key] !== undefined && item[key] !== null); }
Здесь `T` — тип объекта в массиве, `K` — ключ, который должен быть одним из ключей объекта `T`. Функция возвращает массив объектов, у которых по ключу `key` значение не `undefined` и не `null`. Это обеспечивает строгую типизацию и безопасность при обращении к свойствам объектов.