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

Svelte中如何为嵌套组件绑定非字符串类型的动态属性?

Svelte中如何为嵌套组件绑定非字符串类型的动态属性?

嗨,我来帮你搞定这个问题~

你遇到的TS类型错误,根源其实是属性后面多余的逗号!Svelte的组件属性语法里,不同属性之间不需要用逗号分隔,你在index = { 1 }和paragraphs = {[...]}末尾加的逗号,让TypeScript错误地把这些表达式解析成了对象字面量的一部分,进而导致类型不匹配。

只需要去掉这些多余的逗号,代码就能正常工作了,正确的父组件写法如下:

<script lang="ts">
import MySimpleComponent from './MySimpleComponent.svelte';
</script>

<MySimpleComponent
  index={1}
  paragraphs={[
    'Nisi ab nesciunt sapiente. Et nostrum quo qui quia non.',
    'Aut vel quia vel ducimus eius perferendis.'
  ]}
/>

这里再给你补个小知识点:在Svelte里,用{ }包裹的内容是JavaScript表达式,它会直接保留原本的类型——{1}就是数字类型的1,{[...数组内容]}就是字符串数组类型,完全符合子组件的类型声明要求。只有当你不用{ }直接写值(比如index="1")时,才会被当作字符串处理哦。

备注:内容来源于stack exchange,提问作者goose_lake

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 12:04:30