Javascript 在angular2 Typescript应用程序中使用html2canvas时出错
我正在尝试在Angular2应用程序中实现打印功能。我偶然发现了这个html2canvas软件包。这看起来令人印象深刻,但当我试图在我的应用程序中包括这一点时,它给了我一个错误 以下是我遵循的步骤Javascript 在angular2 Typescript应用程序中使用html2canvas时出错,javascript,angular,typescript,html2canvas,Javascript,Angular,Typescript,Html2canvas,我正在尝试在Angular2应用程序中实现打印功能。我偶然发现了这个html2canvas软件包。这看起来令人印象深刻,但当我试图在我的应用程序中包括这一点时,它给了我一个错误 以下是我遵循的步骤 从下载的js文件 添加了 在TS文件中声明声明var html2canvas:any 添加了要打印的代码(当用户单击打印按钮-测试代码时) printview():无效{ html2canvas(document.body).then(函数(canvas){ document.body.appendC
声明var html2canvas:any代码>
printview():无效{
html2canvas(document.body).then(函数(canvas){
document.body.appendChild(画布);
});
}
浏览器\u适配器。ts:78引用错误:未定义html2canvas
任何帮助或提示都是有用的 TypeScript需要定义来识别VanillaJS框架 这样想,TypeScript依靠它拥有的TS文件来识别对象,HTML中包含html2canvas,但TypeScript现在有了识别html2canvas对象的方法 可能的解决办法:
最佳: 升级到TypeScript 2.*并使用新的“typeRoots”和“types”字段 升级到TS 2.0后,请执行以下步骤+
npm i@types/html2canvas
并更新“tsconfig.json”文件,如下所示:
{
“编译器选项”:{
//你的选择,
“类型根”:[
“/node_modules/@types”
],
“类型”:[
“html2canvas”
]
}
}
可接受: 手动下载定义文件(不推荐,因为您需要通过手动获取最新版本来维护每个更新的定义)
又快又脏: 在根文件夹中创建一个“references.d.ts”文件(位于tsconfig.json旁边),并编写以下内容:
声明var html2canvas:any代码>
通过这样做,TCPSPER会知道你作为一个编码器知道“HTML2CANVAS”的存在,所以它不会认为它是一个错误(这个解决方案的主要缺点是你对库没有智力支持,所以基本上你只是在盲目地编写代码)。
因此,对于一个可靠的项目,我推荐最佳解决方案,如果您只是想使用TS进行测试,其他任何解决方案都可以:)
如果您想了解更多关于TS2中包含的新类型属性的信息,请阅读对另一个问题的回答:
当然,请参阅以下文档:
TypeScript需要定义才能识别VanillaJS框架
这样想,TypeScript依靠它拥有的TS文件来识别对象,HTML中包含html2canvas,但TypeScript现在有了识别html2canvas对象的方法
可能的解决办法:
最佳:
升级到TypeScript 2.*并使用新的“typeRoots”和“types”字段
升级到TS 2.0后,请执行以下步骤+
npm i@types/html2canvas
并更新“tsconfig.json”文件,如下所示:
{
“编译器选项”:{
//你的选择,
“类型根”:[
“/node_modules/@types”
],
“类型”:[
“html2canvas”
]
}
}
可接受:
手动下载定义文件(不推荐,因为您需要通过手动获取最新版本来维护每个更新的定义)
又快又脏:
在根文件夹中创建一个“references.d.ts”文件(位于tsconfig.json旁边),并编写以下内容:
声明var html2canvas:any代码>
通过这样做,TCPSPER会知道你作为一个编码器知道“HTML2CANVAS”的存在,所以它不会认为它是一个错误(这个解决方案的主要缺点是你对库没有智力支持,所以基本上你只是在盲目地编写代码)。
因此,对于一个可靠的项目,我推荐最佳解决方案,如果您只是想使用TS进行测试,其他任何解决方案都可以:)
如果您想了解更多关于TS2中包含的新类型属性的信息,请阅读对另一个问题的回答:
当然,请参阅以下文档:
您验证过html2canvas.js是否已实际加载吗?是的,我验证过。。。它一直在加载良好…您是否验证了html2canvas.js确实已加载?是的,我验证了。。。它加载得很好…在tsconfig,json
文件中指定了“typeroot”,另外指定types
元素不是一个错误吗?也就是说,仅仅指定typeroot
,难道还不够吗?谢谢你的回答。我再也进不了大学了。然后(…)。我得到以下错误:网页\导入\模块\ 7 \ html2canvas不是一个任何想法都会感激的功能!如果在tsconfig,json
文件中指定了“typeroot”,那么额外指定types
元素不是一个错误吗?也就是说,仅仅指定typeroot
,难道还不够吗?谢谢你的回答。我再也进不了大学了。然后(…)。我得到以下错误:网页\导入\模块\ 7 \ html2canvas不是一个任何想法都会感激的功能!