Language-tools: Typescript エラー - JS である外部ライブラリの子コンポーネントの on:"event" を呼び出すと、オブジェクトが不明です。

作成日 2020年09月10日  ·  3コメント  ·  ソース: sveltejs/language-tools

バグの説明

これは、このクローズされた問題と同様のエラーです - https://github.com/sveltejs/language-tools/issues/396
唯一の違いは、plainJS コンポーネントがそのコンポーネントで使用されていることだと思います。
それを開いた人がどのように解決したかを再現するために、さまざまな方法を試しましたが、役に立ちませんでした。
Svelte Material UI Slider があります

こんな感じでインポート

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 なども試して、デフォルトの Slider をエクスポートしましたが、これまでは何も機能しませんでした。

誰か私に手を差し伸べてくれるとありがたいです。

ありがとう。

question

最も参考になるコメント

@dummdidummはうまく

どうもありがとう!

全てのコメント3件

Sliderクラス定義にコンストラクターを追加してみてください

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

次に、次のようにインポートします
import Slider from '@smui/slider';
私のために働きます。

それでも解決しない場合は、再現可能なコード スニペット + ステップ バイ ステップまたはリポジトリを投稿できますか?

@dummdidummはうまく

どうもありがとう!

このページは役に立ちましたか?
0 / 5 - 0 評価