Language-tools: Typoskriptfehler - Objekt ist unbekannt beim Aufrufen von: "event" für externe Bibliotheks-Kindkomponente, die JS ist

Erstellt am 10. Sept. 2020  ·  3Kommentare  ·  Quelle: sveltejs/language-tools

Beschreibe den Fehler

Dies ist ein ähnlicher Fehler wie dieses geschlossene Problem - https://github.com/sveltejs/language-tools/issues/396
Ich denke, der einzige Unterschied besteht darin, dass die plainJS-Komponente in dieser verwendet wird.
Ich habe auf verschiedene Weise versucht, nachzuvollziehen, wie die Person, die das geöffnet hat, es gelöst hat, aber ohne Erfolg.
Ich habe einen Svelte Material UI Slider

Ich importiere es so

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

das ist die problematische Zeile - <Slider on:volume-changed={event => changeTrackVolume(event, track)}/>

Wenn ich meine Typen hinzufüge.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)

Das sind die Fehler, die ich bekomme.
Ich habe es auch mit @smui/slider etc. probiert und default Slider exportiert, bisher hat nichts funktioniert.

Ich würde mich freuen, wenn mich jemand einleiten könnte.

Vielen Dank.

question

Hilfreichster Kommentar

@dummdidumm das hat funktioniert lol, das ist wahrscheinlich das einzige, was ich nicht versucht habe, so schwer fassbar.

Vielen Dank!

Alle 3 Kommentare

Sie können versuchen, der Klassendefinition Slider einen Konstruktor hinzuzufügen

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

dann importieren wie
import Slider from '@smui/slider';
funktioniert bei mir.

Wenn das Problem dadurch nicht behoben wird, könnten Sie ein reproduzierbares Code-Snippet + eine Schritt-für-Schritt-Anleitung oder ein Repo posten?

@dummdidumm das hat funktioniert lol, das ist wahrscheinlich das einzige, was ich nicht versucht habe, so schwer fassbar.

Vielen Dank!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen