gpt4 book ai didi

javascript - webpack + typescript : "Property ' jwplayer' does not exist on type 'Window' "when using script-loader

转载 作者:行者123 更新时间:2023-11-30 15:11:51 25 4
gpt4 key购买 nike

我正在制作一个相当基本的组件,到目前为止看起来如下:

import * as React from 'react';
import 'lib/jwplayer-7.7.4/jwplayer.js';

interface Props {
src: string,
};

export default class ShiftPlayer extends React.Component<Props> {
element: HTMLDivElement = null;

componentDidMount() {
const { src, ...props } = this.props;
window.jwplayer(this.element).setup({
file: src,
...props,
});
}

render() {
return (
<div
ref={(el) => {
this.element = el;
}}
/>
);
}
}

但是,这在我的 IDE (VSCode) 中始终显示错误:

enter image description here

由于库是通过 script-loader 加载的,我可以假设它存在于 window 对象上。

这是为什么?这应该如何解决?

最佳答案

默认情况下,TypeScript 只知道标准的 window 属性,所以你必须告诉它任何非标准的全局变量,比如 jwplayer。应该这样做:

interface Window {
jwplayer: any;
}


window.jwplayer(...)

此解决方案使用 declaration merging扩充标准 Window 界面。如果需要在多个地方使用jwplayer,可以考虑将增强的Window界面提取到一个.d.ts文件

关于javascript - webpack + typescript : "Property ' jwplayer' does not exist on type 'Window' "when using script-loader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45019375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com