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

TypeScript报错:'js-cookie'类型不存在'get'属性的问题排查

问题描述

无法构建以下React代码:

import Cookies from 'js-cookie';

React.useEffect(() => {
  
  interface UserInfo {
  name: string;
  verified: boolean;
}
  
  const userInfo = Cookies.get('userInfo');
  if (userInfo && !userInfo.verified) {
    setUserName(`unknown`);
  } else {
    setUserName('else');
  }
}, []);

报错信息:

Type error: Property 'get' does not exist on type 'typeof import("js-cookie")'.
87 | const userInfo = Cookies.get('userInfo');

已尝试执行:

  • npm install js-cookie
  • npm install --save @types/js-cookie

但仍存在该错误,请问原因是什么?

问题原因及解决办法
  • 导入方式不符
    js-cookie的默认导出逻辑在TypeScript环境下可能存在匹配问题,将导入语句改为命名导入或整体导入即可:
// 方式1:整体导入
import * as Cookies from 'js-cookie';
// 方式2:命名导入
import { get } from 'js-cookie';
// 调用时直接使用 get('userInfo')
  • 类型定义未正确加载
    1. 删除node_modules文件夹和package-lock.json/yarn.lock文件,重新执行npm install,确保依赖完整安装;
    2. 检查tsconfig.json的compilerOptions.types配置,若存在该数组,添加"js-cookie":
{
  "compilerOptions": {
    "types": ["js-cookie"]
  }
}
  • 忽略了Cookie的存储类型
    Cookie存储的是字符串,直接调用userInfo.verified会报错,即使解决了导入问题,也需要先解析字符串为对象:
const userInfoStr = Cookies.get('userInfo');
const userInfo: UserInfo | null = userInfoStr ? JSON.parse(userInfoStr) : null;
if (userInfo && !userInfo.verified) {
  setUserName('unknown');
} else {
  setUserName('else');
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 05:24:57