【发布时间】:2021-04-10 16:28:39
【问题描述】:
我有这些类型:
type Exercise = {
type: string
prompt: string
answer: string
}
type ComplexExercise = {
type: string
prompt: string,
subExercises: Exercise[]
}
我正在尝试制作一个从 api 获取数据并根据类型呈现它的组件
<script lang="ts">
let promise = getExercise(params.exerciseId).then((ex) => (exercise = ex));
let exercise: ComplexExercise | Exercise;
</script>
...
{#await promise}
<p>Loading exercise</p>
{:then}
{#if exercise.type !== "COMPLEX"}
<BaseEditor {exercise} />
{:else}
{#each exercise.subExercises as ex}
<BaseEditor {ex} />
{/each}
{/if}
{/await}
我收到以下错误
Property 'subExercises' does not exist on type Exercise
投射它会引发此错误
{#each (exercise as ComplexExercise).subExercises as ex}
^ Unexpected token svelte(parse-error)
似乎唯一可行的是将锻炼类型设置为任何类型,出于显而易见的原因,我正在避免它。 任何帮助表示赞赏
【问题讨论】:
-
Typescript 仅在
<script>标签中受支持,在标记中不支持。
标签: typescript typescript-typings svelte