Language-tools: 打字稿错误 - 调用时对象未知:JS 的外部库子组件的“事件”

创建于 2020-09-10  ·  3评论  ·  资料来源: sveltejs/language-tools

描述错误

这是与此已关闭问题类似的错误 - https://github.com/sveltejs/language-tools/issues/396
我认为唯一的区别是在其中使用了plainJS 组件。
我尝试了多种方式来重现打开那个人的人如何解决它,但无济于事。
我有一个 Svelte Material UI 滑块

我是这样导入的

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奏效了,哈哈,这可能是我唯一没有尝试过的事情,太难以捉摸了。

非常感谢!

所有3条评论

您可以尝试在Slider类定义中添加构造函数

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

然后像这样导入
import Slider from '@smui/slider';
为我工作。

如果这不能解决它,你能发布一个可重现的代码片段+分步或回购吗?

@dummdidumm奏效了,哈哈,这可能是我唯一没有尝试过的事情,太难以捉摸了。

非常感谢!

此页面是否有帮助?
0 / 5 - 0 等级