当前位置: 首页 > 知识库问答 >
问题:

Angular中的html2canvas-无法调用其类型缺少调用签名的表达式

卓胜
2023-03-14

我正在尝试将html2Canvas库用于Angular 8项目。

我还尝试在我的项目中通过npm install--sav@type/html2Canvas安装html2Canvas类型,但它仍然不起作用。

模板:

<div #myform>
  <form>
    ...
  </form>
</div>

组件:

import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';
import * as html2canvas from 'html2canvas';

@Component({
  selector: 'app-pdf-viewer',
  templateUrl: './pdf-viewer.component.html',
  styleUrls: ['./pdf-viewer.component.scss']
})
export class PdfViewerComponent {
  @ViewChild('myform', { static: false, read: ElementRef }) pdfForm: ElementRef;

  constructor() {}


  pdfDownload() {
    html2canvas(this.pdfForm.nativeElement).then(canvas => {
      const imgData = canvas.toDataURL('image/png');
      document.body.appendChild(canvas);
    });
  }

}

我的意图是将表单呈现为画布,但应用程序抛出错误:

src/app/grid/pdf-viewer/pdf-viewer中出错。组成部分ts(19,5):错误TS2349:无法调用其类型缺少调用签名的表达式。键入“typeof import(“myroute”)”您不支持调用签名。

共有3个答案

孙元明
2023-03-14

在Angular 8上也有同样的问题,我能够在没有错误的情况下导入库的唯一方法是使用要求。

看这篇文章。

郦磊
2023-03-14

对于Angular 8,请参阅此链接:https://github.com/niklasvh/html2canvas/issues/1896#issuecomment-506129710

基本上,您需要1.0.0-rc版本。安装1个html2canvas使其工作。

薛博艺
2023-03-14

解决了!谢谢:)

最后,我以这种方式导入:

import html2canvas from 'html2canvas';
 类似资料:
  • 问题内容: 我是打字稿的新手,并且有两节课。在父类中,我有: 在儿童班,我有: showMore和ShowLess都给我一个错误,“无法调用类型缺少调用签名的表达式”。 但是,我认为setProp返回的函数确实具有呼叫签名吗?我认为我误解了有关函数类型的一些重要信息,但我不知道它是什么。 谢谢! 问题答案: 它返回的函数具有一个调用签名,但是您告诉Typescript通过添加其签名来完全忽略它。

  • 我将Angular 2与TypeScript 2一起使用。 当我使用 它给我错误: 错误TS2349:无法调用其类型缺少调用签名的表达式。

  • 我得到“无法调用其类型缺少调用签名的表达式。类型'typeof import("weealert2")'没有兼容的调用签名。”在角度使用SWAL时出现此错误。 在一个组件中,我的代码如下所示 在组件中,我得到了上面提到的错误。搜索了很多,但无法找出问题。请帮助我。

  • 在从2. x升级到4. x并将types cript升级到2. x后,开始出现以下错误,该错误与以前的版本配合良好 无法调用其类型缺少调用签名的表达式。类型'((未完成?:(值:MediaStream)= 我的代码如下

  • 1. HttpTransfer无法解析为类型 2.来自AndroidHttp类型的方法newCompartbleTransport()是指缺少的HttpTransment类型 我在libs文件夹中添加了以下jar文件: google-api-client-android-1.18.0-rc.jar google-api-services-drive-v2-rev1-1.7.2-beta.jar g

  • 我有一个测试,它正在测试一个Spring@Service类。这个服务类autoworitory在一个dao@存储库中。dao还在一个类中autowires以提供额外的功能。我想模仿dao中的调用,所以我有如下内容: 服务中对getAnalysis的调用调用dao方法nameExists,我想从Expects块中的mockedNameExists返回结果,但我不知道我做错了什么。