Language-tools: Ошибка Typescript - объект неизвестен при вызове: "событие" для дочернего компонента внешней библиотеки, который является JS.

Созданный на 10 сент. 2020  ·  3Комментарии  ·  Источник: sveltejs/language-tools

Опишите ошибку

Это ошибка, аналогичная этой закрытой проблеме - https://github.com/sveltejs/language-tools/issues/396
Я думаю, единственная разница в том, что в нем используется компонент plainJS.
Я пытался разными способами воссоздать, как человек, открывший его, решил эту задачу, но безуспешно.
У меня есть слайдер пользовательского интерфейса Svelte Material

Я импортирую это так

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

это проблемная строка - <Slider on:volume-changed={event => changeTrackVolume(event, track)}/>

Если я добавлю в свой 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)

Это ошибки, которые я получаю.
Я также пробовал использовать @ smui / slider и т. Д. И экспортировать слайдер по умолчанию, пока ничего не работало.

Буду признателен, если кто-нибудь сможет меня подсказать.

Спасибо.

question

Самый полезный комментарий

@dummdidumm, который сработал, lol, это, наверное, единственное, что я не пробовал, настолько неуловимый.

Большое спасибо!

Все 3 Комментарий

вы можете попробовать добавить конструктор в определение класса Slider

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

затем импортируйте как
import Slider from '@smui/slider';
работает для меня.

Если это не поможет, не могли бы вы опубликовать воспроизводимый фрагмент кода + пошаговое руководство или репо?

@dummdidumm, который сработал, lol, это, наверное, единственное, что я не пробовал, настолько неуловимый.

Большое спасибо!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги