Напиши тип Middle Дженерики обновлено

Возврат хука

Вопрос

Что дописать, чтобы возвращаемый тип вывелся как кортеж [string, (v: string) => void], а не как массив union?

function useName() {
  const [v, setV] = useState('');
  return [v, setV] /* ? */;
}

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

Напишите тип, как написали бы в коде.

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

Коротко

Правильный тип: as const. Ответ Почему так Без as const выводится (string ((v: string) = void))[], и деструктуризация теряет типы.

Правильный тип

as const

Разбор

Ответ

as const

Почему так

Без as const выводится (string | ((v: string) => void))[], и деструктуризация теряет типы. Альтернатива - явная аннотация возвращаемого типа кортежем.

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

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

Термины по теме