我在一个组件中使用以下代码:
- Box.svelte:
<script lang="ts">
type T = $$Generic;
export let loading = false;
export let error = false;
export let value: T | null | undefined = undefined;
</script>
<div>
{#if loading}
Loading...
{:else if error}
Error...
{:else if value}
<slot {value} />
{/if}
</div>
像这样使用它:
<Box
loading={$player_service.loading}
error={$player_service.error}
value={$player_service.data?.player}
let:value={player}
>
<!-- Here player is still possibly `null` or `undefined`, why? -->
{player.lastname}
</Box>
我希望player
不为空并且不为未定义,因为{:else if value}
在Box.svelte
中。
我说错了吗?
1条答案
按热度按时间abithluo1#
可能只是一个bug,已经报告了here。
我在your other question中提供了一个变通方案。