Выбор ответа Middle Утилитарные типы обновлено

Parameters и необязательный параметр

Вопрос

Какой тип у P?

type P = Parameters<(a: string, b?: number) => void>[1];

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: number undefined. Parameters возвращает кортеж [a: string, b?: number].

Варианты ответа

  1. [b?: number]
  2. undefined
  3. number
  4. number | undefinedправильный ответ

Разбор

Parameters возвращает кортеж [a: string, b?: number]. Индекс 1 указывает на необязательный элемент, а чтение необязательного элемента кортежа даёт number | undefined.

Просто number был бы для обязательного параметра. [b?: number] это кусок кортежа, а не элемент. undefined потерял бы number.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.