typescript function customMap<T, U>( arr: T[], transformer: (value: T, index: number, array: T[]) => U ): U[] { const result: U[] = []; for (let i = 0; i < arr.length; i++) { result.push(transformer(arr[i], i, arr)); } return result; }
Есть функция customMap, которая делает почти то же самое, что и обычный map массива, но она не типизирована. Нужно её типизировать так, чтобы на пятой строчке был массив строк, на седьмой — массив чисел.
Ответ и пояснения приведены в подробном разборе ниже.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
typescript function customMap<T, U>( arr: T[], transformer: (value: T, index: number, array: T[]) => U ): U[] { const result: U[] = []; for (let i = 0; i < arr.length; i++) { result.push(transformer(arr[i], i, arr)); } return result; }
Здесь `T` — тип элементов исходного массива, `U` — тип элементов результата. Функция `transformer` принимает три аргумента: текущий элемент, индекс и исходный массив, и возвращает элемент типа `U`.