Typescript: Анонимные функции
В этом уроке мы познакомимся с анонимными функциями. Вместе со стрелочными они обычно используются в том же месте, где и определяются. Благодаря этому TypeScript может вывести типы их параметров.
Чтобы определить анонимные функции, указание типов опускают:
const fruits = ['banana', 'mango', 'apple'];
const upperFruits = fruits.map((name) => name.toUpperCase());
// ['BANANA', 'MANGO', 'APPLE']Этот процесс называется контекстная типизация (contextual typing), так как контекст определения функции позволяет вывести типы входных параметров. В итоге код выглядит идентично коду на JavaScript.
Если функция определяется вне контекста, то к ней применяются те же правила, что и к именованным функциям. То есть типы параметров должны быть заданы во время определения:
const toUpper = (name: string): string => name.toUpperCase();
const upperFruits = fruits.map(toUpper);Выводы
В этом уроке мы рассмотрели способ определения анонимных функций и использование их в различных контекстах. Анонимные функции могут сделать код более читаемым и понятным.
Задание
Напишите функцию, которая возвращает массив четных чисел из массива numbers.
Ваше упражнение проверяется по этим тестам
import { expect, expectTypeOf, test } from 'vitest';
import getEvenNumbers from './index';
test('function', () => {
expect(getEvenNumbers()).toEqual([8, 100, 34]);
expectTypeOf(getEvenNumbers).returns.toExtend<number[]>();
});Решение учителя откроется через:
20:00
