typescript 为什么这个对象在else if中可能是null或undefined?

ffx8fchx  于 2023-01-21  发布在  TypeScript
关注(0)|答案(1)|浏览(148)

我在一个组件中使用以下代码:

  • 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中。
我说错了吗?

abithluo

abithluo1#

可能只是一个bug,已经报告了here
我在your other question中提供了一个变通方案。

相关问题