在 TypeScript 中找不到名称 jsPdf

Bec*_*oth 5 javascript node.js jspdf typescript jspdf-autotable

我的任务是使用 JavaScript 将数据打印成 pdf 文件。所以我为我的任务选择了 jsPdf 并且也成功了。我的任务是将该打印任务转换为 TypeScript 。这里我面临一个新问题,Can't find name jsPdf in TypeScript我不知道原因,因为在我的 JavaScript 中成功运行的代码在使用 TypeScript 运行时无法做到这一点。我花了两天的时间来寻找解决方案,但失败了。参考了很多网站,但没有找到任何解决方案。有人可以帮我解决这个问题吗?

索引.html ,

<script src="common/jspdf.min.js"></script>
<script src="common/jspdf.plugin.autotable.js"></script>
Run Code Online (Sandbox Code Playgroud)

我的 Js 文件,

 this.print=function(){
   {
var columns = [" Data","StepData","CateData","CritiData","CheckyData"];
               
      
                var rows = [];
                for (var i = 0 ; i<Data.length; i++) 
                {
                	
                    rows.push([
                        
                        Data[i],
                        StepData[i],
                        CateData[i],
                        CritiData[i],
                        CheckyData[i]
                        
                    ]);
                };
                
                var pdfsize='b2';
               var doc = new jsPDF('p', 'pt',pdfsize);
     
                doc.autoTable(columns, rows, {
                	theme: 'grid', // 'striped', 'grid' or 'plain'
                	headerStyles: {
                        fillColor: [12, 234, 227],
                        textColor: [12, 1, 1]
                    },
                	styles: {
                	      overflow: 'linebreak',
                	      columnWidth: 400
                	    },
                	    beforePageContent: function(data) {
                	    	
                	        doc.text("Process Name :"+mainData.name+"  ||   "+"Description :"+mainData.description, 40, 30);
                	        
                	    },
                    columnStyles: {
                      1: {columnWidth: 60}
                    }
                  });

                  doc.save(mainData.name+".pdf");
            }
        };
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都很好,但是当我将其与类型脚本代码联系起来时,问题就出现了,

 printData=(): any =>{
        {
          
                let rows:any = [];
                for (let i:any = 0 ; i<this.Data.length; i++) 
                {
                	
                    rows.push([
                        
                        this.Data[i],
                        this.StepData[i],
                        this.CateData[i],
                        this.CritiData[i],
                        this.FrequData[i]
                        
                    ]);
                };
                
                
                let pdfsize:any='b2';
                let doc :any= new jspdf('p', 'pt',pdfsize);  //this line is having that error
                 
          
                doc.autoTable(columns, rows, {
                	theme: 'grid',
                	headerStyles: {
                        fillColor: [12, 234, 227],
                        textColor: [12, 1, 1]
                   },
                	styles: {
                	      overflow: 'linebreak',
                	      columnWidth: 400
                	    },
                	    beforePageContent: function(data) {
							
                	        doc.text("Process Name :"+procName+"  ||   "+"Description :"+procDescription, 40, 30);
                	        
                	    },
                    columnStyles: {
                      1: {columnWidth: 60}
                    }
                  });

                  doc.save(this.mainData.name+".pdf");
         }   
        };
Run Code Online (Sandbox Code Playgroud)

new jsPdf () 被 javaScript 接受,但 TypeScript 说的Can't find name jsPdf

Sim*_*son 5

来自评论的建议:尝试declare var jsPDF;在打字稿文件的顶部插入(在 printdata 函数上方)。阅读更多:http : //blogs.microsoft.co.il/gilf/2013/07/22/quick-tip-typescript-declare-keyword/