当前位置: 首页 > news >正文

[前端 | 小错误记录]

image

这个报错 Expected ";" but found "User" 并不是 TypeScript 的类型语法错了,而是 React 组件里不能直接写 interface

我直接给你指出两个错误,并告诉你为什么报错,一步到位修复👇


一、第一个错误(报红的根本原因)

在 React 函数组件内部,不能直接写 interface

因为 JSX 语法里,组件的 return 之前是 JS 表达式环境,不能直接定义接口

❌ 你写的:

export default function App (){interface User{ ... } // ❌ 报错!在组件内部不能直接写 interfaceconst [user, setuser] = useState<User>({});...
}

✅ 正确位置:在组件外部定义

interface User{name: string;age: number;
}export default function App (){const [user, setuser] = useState<User>({});...
}

二、第二个错误(修复后还会报错)

不能把对象直接渲染 {user}

<div> {user} </div> // ❌ 报错!对象不能直接渲染成字符串

✅ 写法:

  • 显示单个属性
<div> {user.name} </div>
  • 或用 JSON.stringify 调试
<div> {JSON.stringify(user)} </div>

三、修复后的完整代码(直接复制运行)

import { useState } from "react";// 1. 接口定义在组件外部 ✅
interface User {name: string;age: number;
}export default function App() {// 2. 初始化空对象 ✅const [user, setUser] = useState<User>({});// 3. 渲染对象属性 ✅return (<div><p>姓名:{user.name}</p><p>年龄:{user.age}</p></div>);
}

四、为什么一开始报 "Expected ; but found User"?

因为 React 解析到 interface 时,以为你在写 JSX 内容,但 JSX 里只能放标签/表达式,不能放 TypeScript 接口声明,所以编译器直接懵了,认为你少了分号。


五、进阶:如何正确初始化空对象?

你传 {} 会报错,因为 {} 不满足 User 类型。

写法 A:使用类型断言(推荐)

const [user, setUser] = useState<User>({} as User);

写法 B:让属性可选

interface User {name?: string;age?: number;
}
const [user, setUser] = useState<User>({});

http://www.jsqmd.com/news/628705/

相关文章:

  • EDA数字钟(四):模块化重构与AX530开发板实战优化
  • 终极键盘重映射工具深度评测:SharpKeys 如何实现零资源占用的系统级键位定制
  • IQuest-Coder-V1-40B-Instruct新手入门:3步搭建代码生成与审查环境
  • 保姆级图解:PCIe链路训练中的Polling与Configuration状态机到底在忙啥?
  • Qwen3-VL-8B图文理解效果展示:数学公式识别、代码截图问答真实截图
  • Github日报|2026年04月12日
  • mysql数据快速导入和导出
  • StructBERT镜像部署常见问题解决:模型加载失败排查指南
  • Kubernetes探针与容器钩子实战指南:从配置到优化
  • Qwen3-14B代码解释效果:将100行Python重构为可读注释+优化建议
  • 保姆级教程:用WebRTC-streamer在5分钟内搭建RTSP摄像头监控系统(含Docker配置)
  • 如何用开源AI工具5分钟完成专业视频字幕制作
  • 邢台斜切鱼片机多少钱,巨鹿县建功机械制造厂产品价格贵吗? - 工业品网
  • 2026年1吨悬臂吊梯队排行:360度悬臂吊、3吨悬臂吊、5吨悬臂吊、悬臂吊厂家、无轨地平车、无轨电动地平车、无轨电动平车选择指南 - 优质品牌商家
  • 5个理由告诉你为什么GHelper是华硕笔记本的最佳性能管理工具
  • MAA明日方舟小助手:基于图像识别技术的游戏自动化助手深度解析
  • OWL ADVENTURE处理复杂表格图像:从截图到结构化数据
  • 抖音批量下载终极指南:高效采集用户主页视频与直播的完整方案
  • IEEE Access投稿全流程指南:从初稿到终稿的实战经验分享
  • 有企业资质认证的斜切鱼片机厂家推荐哪家 - 工业推荐榜
  • GetQzonehistory:一键永久备份QQ空间说说的完整指南
  • Docker实战:通义千问3-Reranker-0.6B微服务部署完整流程
  • STM32实战:双滤波算法在传感器数据处理中的应用(附源码)
  • 2026届最火的六大AI学术网站解析与推荐
  • AScript动态脚本多语言环境支持
  • Intv_AI_MK11 自动化办公助手:Python 脚本生成与执行
  • 千问3.5-2B健身行业:运动姿势图识别、器械使用图理解与训练指导生成
  • 2026年佛山音乐品牌排名,德尚音乐音乐业务、服务及创新成果哪家强 - 工业品牌热点
  • Wnt/β-catenin信号通路在组织修复与再生中的关键作用及机制解析
  • MoveIt! IKFast插件配置避坑指南:从‘GetFreeParameters’报错到成功编译的完整流程