Language-tools: Suporte de slot não encontrado no próprio elemento de slot

Criado em 14 fev. 2021  ·  3Comentários  ·  Fonte: sveltejs/language-tools

Descreva o bug
As propriedades de slot são encontradas apenas no elemento de slot, mas não no próprio elemento. Svelte permite usar a propriedade no elemento, então o erro é simplesmente um pouco enganador. Possivelmente, apenas apareceu como erro ao usar o TypeScript com configurações suficientemente restritas.

Reproduzir
Crie um componente com propriedades de slot e use a propriedade no elemento que declara a propriedade (aqui o erro está no uso de class ):

<Component n={10}>
    <div slot="item" let:zebra class={zebra}>Hello {zebra}</div>
</Component>

[REPL]

Comportamento esperado
A propriedade do slot está no escopo e nenhum erro é gerado.

Capturas de tela
image

Sistema (preencha as seguintes informações):

  • SO: Windows 10 64 bits
  • IDE: VSCode
  • Plugin / Pacote: Svelte para VSCode
Fixed bug

Todos 3 comentários

Precisamos puxar a transformação jsx no nível acima, em torno da tag. Então, por exemplo, neste teste , deve se tornar

<>{() => { let {thing:{ a }} = __sveltets_instanceOf(Component).$$slot_def['default'];<><Component>
    <h1>Hello { a }</h1>
</Component></>}}</>

@dummdidumm Obrigado pela correção

Acabei de testar isso e se let:prop estiver após seu uso, você ainda receberá um aviso esguio em vez de um erro de tipo:

'prop' não está definido [svelte (declaração em falta)]

Captura de tela de exemplo:

image

A saída gerada funciona independentemente da ordem, no entanto. Claro que posso simplesmente reordenar os atributos para me livrar do erro como uma solução alternativa.

Este é um bug do compilador Svelte, criei https://github.com/sveltejs/svelte/issues/6009 para isso.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

koddr picture koddr  ·  6Comentários

PatrickG picture PatrickG  ·  3Comentários

non25 picture non25  ·  5Comentários

matthewmueller picture matthewmueller  ·  3Comentários

arxpoetica picture arxpoetica  ·  3Comentários