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

解决MyMaps无法作为JSX组件使用的返回类型报错

报错原因

MyMaps无法作为JSX组件使用、返回值类型为void的报错和React版本无关,本质是TypeScript对.jsx后缀组件的类型推断失效:你在TSX页面里导入后缀为.jsx的React组件时,TS无法正确识别组件的返回值类型,默认将其判定为void类型,不符合JSX元素的类型规范。
另外你的MyMaps组件中存在直接返回字符串的分支,也会干扰TS的类型推导:

if (loadError) return 'Error';
if (!isLoaded) return 'Loading...';
修复步骤
  • 优先选择最稳妥的方案:将components/maps/路径下的maps.jsx文件重命名为maps.tsx,让TypeScript直接识别TSX格式的React组件,自动完成正确的类型推导。
  • 重命名后修改组件里的直接返回字符串逻辑,保证所有分支返回合法JSX元素,避免后续类型报错:
if (loadError) return <>加载地图出错</>;
if (!isLoaded) return <>地图加载中...</>;
  • 如果需要保留.jsx后缀不修改文件名,可以在项目根目录的全局类型声明文件(通常是next-env.d.ts或自定义的global.d.ts)中添加以下声明,让TS识别所有jsx导出的React组件:
declare module '*.jsx' {
  import type { ComponentType } from 'react';
  const JSXComponent: ComponentType<any>;
  export default JSXComponent;
}
  • 临时快速绕过校验的方案(不推荐长期使用):在index.tsx导入MyMaps的上一行添加// @ts-ignore注释,跳过该行的类型检查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 13:03:21