You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js中使用Context API遇TypeScript报错原因咨询

TypeScript报错原因分析:Context API中属性不存在于Object类型

你遇到的报错完全是TypeScript类型定义不精确导致的,具体原因如下:

  1. Context类型定义太宽泛
    在AlertContext.tsx里,你把Context的类型指定为null | Object:

    export const AlertDialogContext = createContext<null | Object>(null);
    

    TypeScript中的Object是最顶层的对象类型,它仅包含所有对象通用的内置属性(比如toString、valueOf),完全不包含你自定义的state和openDialogFxn属性。

  2. 实际传入的value与类型不匹配
    你在AlertDialogState.tsx里传给Provider的currentState是一个有明确结构的对象:包含布尔值state和无参函数openDialogFxn,但Context的类型并没有描述这个具体结构。

所以当你在AlertDialog.tsx里通过useContext获取data时,TypeScript只能识别出它是Object或null类型,无法感知到你自定义的属性,因此会抛出“属性不存在于Object类型”的错误——尽管运行时数据是正常的,这只是TS的静态类型检查报错。


内容的提问来源于stack exchange,提问作者Kannu Mandora

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 12:02:13