Language-tools: Erro de escrita de tipo - o objeto é desconhecido ao chamar: "evento" para o componente filho da biblioteca externa que é JS

Criado em 10 set. 2020  ·  3Comentários  ·  Fonte: sveltejs/language-tools

Descreva o bug

Este é um erro semelhante a este problema encerrado - https://github.com/sveltejs/language-tools/issues/396
Acho que a única diferença é que o componente plainJS é usado naquele.
Eu tentei de várias maneiras recriar como a pessoa que abriu aquele resolveu, mas sem sucesso.
Eu tenho um Svelte Material UI Slider

Eu importo assim

import Slider from '@smui/slider/bare.js';

esta é a linha problemática - <Slider on:volume-changed={event => changeTrackVolume(event, track)}/>

Se eu adicionar meu types.d.ts

declare module '@smui/slider/bare.js' {
    export class Slider {
        $$prop_def: any;
        $on: any;
    }
}
Object is of type 'unknown'.ts(2571)
Argument of type 'typeof import("@smui/slider/bare.js")' is not assignable to parameter of type 'AConstructorTypeOf<unknown>'.
  Type 'typeof import("@smui/slider/bare.js")' provides no match for the signature 'new (...args: any[]): unknown'.ts(2345)

JSX element type 'Slider' does not have any construct or call signatures.ts(2604)

Esses são os erros que estou recebendo.
Eu também tentei com @ smui / slider etc. e exporte o Slider padrão, nada funcionou até agora.

Eu apreciaria se alguém pudesse me indicar.

Obrigado.

question

Comentários muito úteis

@dummdidumm que funcionou lol, provavelmente foi a única coisa que eu não tentei, tão evasivo.

Muito obrigado!

Todos 3 comentários

você pode tentar adicionar construtor à definição de classe Slider

declare module '@smui/slider' {
  export default class Slider {
    $$prop_def: any;
    $on: any;
  }
}

então importe como
import Slider from '@smui/slider';
funciona para mim.

Se isso não resolver o problema, você poderia postar um trecho de código reproduzível + passo a passo ou um repositório?

@dummdidumm que funcionou lol, provavelmente foi a única coisa que eu não tentei, tão evasivo.

Muito obrigado!

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