Задать вопрос
@Akim41k
23 years old Designer from san. Francisco

Как переделать этот код под TypeScript?

Как оптимизировать данный код под TypeScript, чтобы он не ругался? Все работает, но хочется сделать все правильно..
import React, { FC, createContext, useState } from 'react'

interface ContextProviderInterface {
	children: JSX.Element
}

export const Context = createContext(null)

export const ContextProvider: FC<ContextProviderInterface> = ({ children }) => {
	const [sidebarIsOpen, setSidebarIsOpen] = useState(true)

	const toggleSidebar = () => {
		setSidebarIsOpen(sidebarIsOpen => !sidebarIsOpen)
	}

	return (
		<Context.Provider value={{ sidebarIsOpen, toggleSidebar }}>
			{children}
		</Context.Provider>
	)
}
  • Вопрос задан
  • 138 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию
    6 месяцев
    Далее
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
TS тебе предельно понятно написал в чём проблема. Учись читать ошибки.

Конкретнее же: у тебя не задан тип значения которое может принимать контекст, а выведено самим TS - null(потому что именно такое значение по умолчанию ты передал).
export const Context = createContext<{
  sidebarIsOpen: boolean;
  toggleSidebar: (value: boolean) => void;
} | null>(null)
или лучше
export const Context = createContext({
  sidebarIsOpen: false,
  toggleSidebar: () => {}
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы