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

在Svelte(TypeScript)中定义可选Prop报错,如何正确声明?

在Svelte(TypeScript)中正确声明可选Prop的方法

你遇到的错误是因为Svelte的TS语法不支持直接在export let声明Prop时使用?:可选标记,需要按照Svelte的规则来处理可选Prop,以下是两种正确的实现方式:

方式一:允许Prop为undefined并设置默认值

将类型声明为MyVariants | undefined,同时给Prop设置默认值undefined,这样组件使用者可以选择不传该Prop:

<script lang="ts">
  export let variant: MyVariants | undefined = undefined;
</script>

方式二:指定枚举内的默认值

如果你希望Prop在未传入时使用一个合法的枚举值而非undefined,可以直接给Prop设置枚举类型的默认值:

<script lang="ts">
  export let variant: MyVariants = MyVariants.one;
</script>

这两种写法都能实现可选Prop的需求,你可以根据业务场景选择:如果允许Prop不存在(值为undefined)就选第一种;如果希望Prop始终有一个合法枚举值就选第二种。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 06:33:13