I have created some components which take an optional prop like hide={true}
. My problem is that these annoying error messages always flood my console when I don't pass that prop:
<MyComponent> was created without expected prop 'hide'
Is there some way to declare the props as optional?
Just make the default value null
.
<script>
export let myProp = null // Default value is null
</script>
<div class:has-some-prop={myProp}>
{#if myProp }
Has Prop: {myProp}
{:else}
No Prop
{/if}
</div>
<MyComponent/>
<MyComponent myProp='yep'/>
<div>No Prop</div>
<div class:has-some-prop>
Has Prop<span>yep</span>
</div>
Just give them a default value.
MyComponent.svelte
<script>
export let i = 123 // Default value is now 123
</script>
<!-- Output is "i = 123" -->
<p>i = {i}</p>
App.svelte
<script>
import MyComponent from './MyComponent.svelte'
</script>
<!-- No error here! -->
<MyComponent/>
So, in your case you would change export let hide
to export let hide = false
.