使用保留字作为 prop 名称

Tho*_*lle 6 svelte

我想用作class我的组件的道具名称,但出现以下错误:

意外的关键字“class”。

<script>
  export let class = '';
</script>

<style>
  .foo {
    color: red;
  }
</style>

<div class="{class}">
  <slot />
</div>
Run Code Online (Sandbox Code Playgroud)

是否可以在 Svelte 中使用保留字作为 prop 名称?

Tho*_*lle 11

通过将 prop 命名为非保留字,然后将其导出为保留字,它可以按预期工作。

REPL

<!-- App.svelte -->
<script>
  import Child from './Child.svelte';
</script>

<Child class="foo">Bar</Child>

<!-- Child.svelte -->
<script>
  let classProp = '';

  export { classProp as class };
</script>

<style>
  .foo {
    color: red;
  }
</style>

<div class="{classProp}">
  <slot />
</div>
Run Code Online (Sandbox Code Playgroud)