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.
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
