在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
相关产品推荐
相关产品推荐

