属性在类型"{}"和预期 0 类型参数上不存在,但得到 1



我有一个钩子useAuth()在上下文中处理用户。

import { useContext } from "react";
import AuthContext from "../context/AuthContext_Provider"
//AuthContext has been declared: const AuthContext = createContext({});
const useAuth = () => {
return useContext(AuthContext) 
}
export default useAuth

现在,我想知道h如何调用这个函数?

返回错误属性'auth'不存在类型'{}'.ts(2339)

const { auth } = useAuth()
如果我尝试添加任何类型anyobject{}React。上下文甚至{auth:{username:string}}像下面这样,我得到另一个错误说:预期0类型参数,但得到1.ts(2558)
const { auth } = useAuth<any>()

This:

const AuthContext = createContext({});

没有关于上下文包含的类型的信息。如果您提供一个默认对象,那么您将获得所需的类型

const AuthContext = createContext({ auth: '' })

或者传入一个类型:

type AuthContextType = {
auth?: string
}
const AuthContext = createContext<AuthContextType>({})

看到操场