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

Svelte 5中children属性的正确TypeScript类型是什么?

在Svelte 5中为$props()的children定义类型

在Svelte 5里,children本质是一个返回可渲染内容的函数,你可以通过两种方式定义它的类型:

方式一:使用基础函数类型

直接用() => unknown作为类型,足够满足大部分场景:

<script lang="ts">
    interface Props {
        children: () => unknown;
    }
    const { children }: Props = $props();
</script>

<div>
    {@render children?.()}
</div>

方式二:使用Svelte内置的Renderable类型

如果需要更精确的类型,可以从svelte导入Renderable,它是Svelte内部定义的可渲染内容类型:

<script lang="ts">
    import type { Renderable } from 'svelte';

    interface Props {
        children: () => Renderable;
    }
    const { children }: Props = $props();
</script>

<div>
    {@render children?.()}
</div>

补充说明

由于Svelte 5的文档仍在完善中,官方暂未明确标注children的类型,但从实现逻辑来看,children是一个惰性执行的渲染函数,调用后返回组件的子内容,上述两种类型定义都能完美适配{@render children?.()}的调用方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 03:12:33