使用打字稿

时间:2018-10-29 14:56:07

标签: reactjs typescript electron

我正在尝试使用打字稿生成webview的实例。

我正在使用电子伪造的react-typescript模板。

我尝试了以下操作:

import {Component} from 'react';
import * as React from 'react';
import {WebviewTag} from 'electron';

class MediaWebView extends Component<{ url: string }, {}> {

  renderWebVierw() {
    const myWebView: WebviewTag /* error here */ =
      (<webview src={this.props.url}
                autosize='on'
                nodeintegration='on'
                disablewebsecurity='on'
                webpreferences='allowRunningInsecureContent'
                style={webViewStyle}
      />);
    return myWebView;
  }

这将呈现Web视图,但会引发以下错误:TS2322: Type 'Element' is not assignable to type 'WebviewTag'. Property 'addEventListener' is missing in type 'Element'

我无法订阅事件或将代码注入Web视图。

我不知道应该分配什么类型,但是我似乎找不到它。

实现网络视图并使用打字稿可以访问其方法的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

ldd $(which "$(git --exec-path)"/git-http-push)

有同样的问题。问题是因为没有const webview: WebViewTag = (<webview />) as WebViewTag; ,编译器不知道您正在执行的操作是返回WebViewTag对象,并且等式的左手边也不在乎,因为WebViewTag继承自HtmlElement。在这种情况下,as会将对象强制转换为您尝试将其强制转换为的任何类型,如果类型匹配,它将返回对象,如果不匹配,则将仅返回null。