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

Svelte结合TypeScript时无法向组件传递prop的报错问题

产生原因

报错的核心原因是Svelte 框架要求组件所有可接收的外部 prop 必须显式使用export关键字声明。你当前写的let title: string;只是组件的内部变量,没有被标记为对外暴露的传入属性,所以TypeScript类型检查会判定BigButton组件不存在title这个可配置属性,直接抛出类型不匹配的错误。
你尝试的两种传值写法本身都是Svelte支持的合法写法,问题和父组件传参逻辑无关,完全出在子组件的prop声明环节。

修复方案

只需要修改BigButton组件的script块代码,给title变量加上export关键字,将其标记为对外接收的prop即可:

<script lang="ts">
// 增加export关键字,声明为组件可接收的prop
export let title: string;
</script>
<h1 class="text-2xl mb-4 font-extrabold">{title}</h1>

如果需要给prop配置默认值,直接在声明时赋值即可,父组件不传该属性时会自动使用默认值:

<script lang="ts">
export let title: string = "默认按钮文本";
</script>

修复完成后,你原来写的两种传参方式都可以正常生效:

  • <BigButton title={'Join a Game'} />:用JS表达式传值,适合传递变量、动态计算结果的场景
  • <BigButton title='Join a Game' />:直接传静态字面量,静态内容场景下写法更简洁

内容的提问来源于stack exchange,提问作者João Pedro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:48:15