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

TypeScript类型错误:string无法赋值给{ results: string; }类型参数

解决React Native集成Unity时的TypeScript参数类型不匹配问题

错误原因

你调用onUnityMessageController(result.nativeEvent.message)时触发的错误,核心是参数类型不匹配:

  • onUnityMessageController定义的参数是一个包含results字段的对象(类型{ results: string })
  • 但实际传入的result.nativeEvent.message是字符串类型(从提供的类型定义里的UnityMessage接口能明确看到message: string)

修复方案

方案1:修改函数参数类型,直接接收字符串

把onUnityMessageController的参数类型改成字符串,和传入的实际值匹配:

// 原代码
const onUnityMessageController = ({ results }: { results: string }) => {
  console.log('onUnityMessage', results);
}

// 修改后
const onUnityMessageController = (results: string) => {
  console.log('onUnityMessage', results);
}

方案2:调整传入参数的结构,匹配函数期望的对象类型

如果需要保留函数的参数结构,调用时把字符串包装成包含results字段的对象:

// 原调用代码
onUnityMessageController(result.nativeEvent.message)

// 修改后调用
onUnityMessageController({ results: result.nativeEvent.message })

额外优化建议

可以给route.params定义明确的TypeScript接口,避免route: any的模糊类型,提升代码安全性:

interface RouteParams {
  shape: string;
  color: string;
}

// 组件参数类型修改
const Unity = ({ navigation, route }: { navigation: any, route: { params: RouteParams } }) => {
  // 后续代码可安全访问route.params.shape和color
  const { shape, color } = route.params;
  // ... 其余逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:11:37